home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 135 (1990-05-15)(Ossowski, Stefan)(DE)(PD)[v Disaster Master 2].zip / Taifun 135 (1990-05-15)(Ossowski, Stefan)(DE)(PD)[v Disaster Master 2].adf / Reversi / RevCompV2.0-Source < prev    next >
Text File  |  1990-02-23  |  44KB  |  2,555 lines

  1. * --------------------
  2. * -     Rev 2.0      -
  3. * -        by        -
  4. * -  Marc  Fischlin  -
  5. * -        in        -
  6. * -      11/89       -
  7. * --------------------
  8.     incdir    "vd0:include/"
  9.     include    intuition/intuition.i
  10.     include    intuition/intuition_lib.i
  11.     include    exec/exec_lib.i
  12.     include    graphics/graphics_lib.i
  13.     include    libraries/dos.i
  14.     include    libraries/dos_lib.i
  15.     include    misc/easystart.i
  16.     jmp    staaart
  17.  
  18. *  TextMacro :
  19. * -------------
  20. PRINT    MACRO
  21.     moveq.l    #0,d5
  22.     moveq.l    #0,d6
  23.     moveq.l    #0,d0
  24.     lea    \1,a4
  25. notlenred_\@ move.b    (a4)+,d5
  26.     tst.b    d5
  27.     beq    prilenred_\@
  28.     addq.b    #1,d0
  29.     bra    notlenred_\@
  30. prilenred_\@ move.w    d0,d6
  31.     move.l    wptr,a1
  32.     move.l    wd_RPort(a1),a1
  33.     move.w    #1,d0
  34.     CALLGRAF    SetAPen
  35.     move.w    \2,d0
  36.     move.w    \3,d1
  37.     move.l    wptr,a1
  38.     move.l    wd_RPort(a1),a1
  39.     CALLGRAF    Move
  40.     move.l    wptr,a1
  41.     move.l    wd_RPort(a1),a1
  42.     move.w    d6,d0
  43.     lea    \1,a0
  44.     CALLGRAF    Text
  45.     endm
  46.  
  47. *  FillMacro :
  48. * -------------------
  49. FILL    MACRO
  50.     move.l    wptr,a1
  51.     move.l    wd_RPort(a1),a1
  52.     move.w    \3,d0
  53.     CALLGRAF    SetAPen
  54.     move.w    \1,d0
  55.     add    #131,d0
  56.     move.w    \2,d1
  57.     add    #2,d1
  58.     move.w    \1,d2
  59.     add    #159,d2
  60.     move.w    \2,d3
  61.     add    #15,d3
  62.     move.l    wptr,a1
  63.     move.l    wd_RPort(a1),a1
  64.     CALLGRAF    RectFill    
  65.     endm
  66.  
  67. *  BlueMacro :
  68. * -------------
  69. ASK    MACRO
  70.     lea    \1(pc),a0    ;ist der Platz noch frei ?
  71.     moveq.l    \2,d0
  72.     move.b    (a0,d0),d1
  73.     tst.b    d1
  74.     beq    \4
  75.     jmp    \3
  76.     endm
  77.  
  78. *  Change :
  79. * ----------
  80. CHANGE    MACRO        ;was wird um-
  81.     moveq.l    #0,d5    ;gedreht ?
  82.     moveq.l    #0,d3
  83.     moveq.l    #0,d2
  84.     moveq.l    #0,d6
  85.     move.b    byte,d6
  86.     move.b    offset,d5
  87.     lea    tableII,a3
  88.     move.l    0(a3,d5),a5
  89.     move.b    \4,0(a5,d6)
  90.     move    d5,d3
  91.     move    d6,d2
  92.     mulu    #30,d2
  93.     add    #2,d2
  94.     move.w    d2,xfill
  95.     lsr    #2,d3
  96.     mulu    #15,d3
  97.     add    #11,d3
  98.     move.w    d3,yfill
  99.     FILL    xfill,yfill,\5
  100. cb_\@    sub    \1,d5
  101.     sub    \2,d6
  102.     cmp    #0,d5
  103.     blt    cds_\@
  104.     cmp    #28,d5
  105.     bgt    cds_\@
  106.     cmp    #0,d6
  107.     blt    cds_\@
  108.     cmp    #7,d6
  109.     bgt    cds_\@
  110.     lea    tableII,a3
  111.     move.l    0(a3,d5),a5
  112.     move.b    0(a5,d6),d4
  113.     cmp.b    \3,d4
  114.     beq    reach_\@
  115.     jmp    cds_\@
  116. reach_\@    move.b    \4,0(a5,d6)
  117.     move    d5,d3
  118.     move    d6,d2
  119.     mulu    #30,d2
  120.     add    #2,d2
  121.     move.w    d2,xfill
  122.     lsr    #2,d3
  123.     mulu    #15,d3
  124.     add    #11,d3
  125.     move.w    d3,yfill
  126.     FILL    xfill,yfill,\5
  127.     jmp    cb_\@
  128. cds_\@    nop    
  129.     endm
  130.  
  131. *  PossibleMacro :
  132. * -----------------
  133. POSSIBLE    MACRO        ;ist der zug möglich ?
  134.     moveq.l    #0,d5
  135.     moveq.l    #0,d6
  136.     move.b    offset(pc),d5
  137.     move.b    byte,d6
  138.     lea    counter(pc),a3
  139.     move    #0,(a3)
  140.     lea    tableII(pc),a5
  141.     sub    \1,d5
  142.     sub    \2,d6
  143.     move.l    (a5,d5),a4
  144.     move.b    (a4,d6),d3
  145.     move.b    fab1,d4    
  146.     cmp.b    d4,d3
  147.     beq    voryep_\@
  148.     jmp    pback_\@
  149. voryep_\@    add.b    #1,(a3)    
  150. yep_\@    sub    \1,d5
  151.     tst.b    d5
  152.     blt    pback_\@
  153.     cmp.b    #28,d5
  154.     bgt    pback_\@
  155.     sub    \2,d6
  156.     tst.b    d6
  157.     blt    pback_\@
  158.     cmp.b    #7,d6
  159.     bgt    pback_\@
  160.     move.l    (a5,d5),a4
  161.     move.b    (a4,d6),d3    
  162.     move.b    fab1,d4
  163.     cmp.b    d4,d3
  164.     beq    voryep_\@
  165.     move.b    fab2,d4
  166.     cmp.b    d4,d3
  167.     beq    pok_\@
  168.     jmp    pback_\@
  169. pok_\@    move.b    #1,\3
  170.     move.b    endcounter,d2
  171.     move.b    counter,d3
  172.     add.b    d3,d2
  173.     move.b    d2,endcounter    
  174.     jmp    preally_\@
  175. pback_\@    move.b    #0,\3
  176. preally_\@    nop
  177.     endm    
  178.  
  179. *  HexerMacro :
  180. * --------------
  181. HEXER    MACRO
  182.     lea    \1,a5
  183.     move.b    \2,d5
  184.     and.l    #$ffff,d5
  185.     divs    #10,d5
  186.     add.b    #"0",d5
  187.     move.b    d5,(a5)+
  188.     swap    d5
  189.     and.l    #$ffff,d5
  190.     add.b    #"0",d5
  191.     move.b    d5,(a5)+
  192.     PRINT    \1,#81,\3
  193.     endm
  194.  
  195. *  DrawLines :
  196. * ---------------
  197. Lines    move.l    #132,d5
  198.     move.l    wptr,a1
  199.     move.l    wd_RPort(a1),a1
  200.     move.l    a1,a5
  201.     moveq.l    #1,d0
  202.     CALLGRAF    SetAPen        ;weiße Linie
  203. .xlines    move.l    a5,a1
  204.     move.l    d5,d0
  205.     move.l    #13,d1
  206.     CALLGRAF    Move
  207.     move.l    a5,a1
  208.     move.l    d5,d0
  209.     move.l    #132,d1
  210.     CALLGRAF    Draw
  211.     add    #30,d5
  212.     cmp    #402,d5
  213.     beq    .ylines
  214.     bra    .xlines
  215. .ylines    move.l    #12,d5
  216. .yret    move.l    a5,a1
  217.     move.l    d5,d1
  218.     move.l    #132,d0
  219.     CALLGRAF    Move
  220.     move.l    a5,a1
  221.     move.l    d5,d1
  222.     move.l    #372,d0
  223.     CALLGRAF    Draw
  224.     add    #15,d5
  225.     cmp.b    #147,d5
  226.     beq    .rete
  227.     bra    .yret
  228. .rete    rts
  229.  
  230.  
  231. *  Intuition oeffnen :
  232. * ---------------------
  233. staaart    lea    intname,a1
  234.     moveq    #0,d0
  235.     CALLEXEC    OpenLibrary
  236.     move.l    d0,_IntuitionBase
  237.  
  238. *  Graphics oeffnen :
  239. * --------------------
  240.     lea    grafname,a1
  241.     moveq    #0,d0
  242.     CALLEXEC    OpenLibrary
  243.     move.l    d0,_GfxBase
  244.  
  245. *  DOS oeffnen :
  246. * ---------------
  247.     lea    DOSname,a1
  248.     moveq    #0,d0
  249.     CALLEXEC    OpenLibrary
  250.     move.l    d0,_DOSBase    
  251.  
  252. *  OpenMainWindow :
  253. * ------------------
  254.  
  255.     lea    wdef,a0
  256.     CALLINT     OpenWindow
  257.     move.l    d0,wptr
  258.     FILL    #92,#56,#3
  259.     FILL    #122,#56,#2
  260.     FILL    #92,#71,#2
  261.     FILL    #122,#71,#3
  262.     PRINT    msg1,#33,#90
  263.     PRINT    msg4,#33,#104
  264.     PRINT    msg11,#71,#56
  265.     PRINT    msg15,#75,#68
  266.     jsr    Lines
  267.     move.b    #1,dots
  268.     move.b    #3,levelbyte
  269.     move.b    #0,moves
  270.     move.b    #0,backs
  271. vorevent    move.b    #0,upper
  272.     move.b    #0,drupper
  273.     move.b    #0,righter
  274.     move.b    #0,drowner
  275.     move.b    #0,downer
  276.     move.b    #0,dlowner
  277.     move.b    #0,lefter
  278.     move.b    #0,dlupper
  279.     move.b    #2,mode
  280.     move.b    #0,ou
  281.     move.b    #0,now
  282. event2    moveq.l    #0,d5
  283.     moveq.l    #0,d4
  284.     move.b    ou,d4
  285.     addq.b    #1,d4
  286.     move.b    d4,ou
  287.     move.b    d4,d5
  288.     cmp.b    #61,d5        ;ist schon alles voll ?
  289.     beq    youpass
  290.     lea    offset(pc),a3
  291.     lea    byte(pc),a4
  292.     lea    tableIV(pc),a0
  293.     lsl    #2,d5
  294.     move.l    (a0,d5),a0
  295.     jmp    (a0)
  296. eve4    move.b    endcounter,d0    
  297.     tst.b    d0
  298.     beq.s    event2        ;jetzt mit "."
  299.     move.b    #1,now
  300.     cmp.b    #0,dots
  301.     beq.s    event2
  302.     jsr    drawDot
  303.     bra    event2
  304. geht_OK    move.b    #0,endcounter
  305.     move.b    #0,mode
  306.     bra    event
  307. youpass    cmp.b    #1,now
  308.     beq    geht_OK
  309.     move.b    passone,d0
  310.     cmp.b    #1,d0
  311.     beq.s    yopa2
  312.     jmp    u3
  313. yopa2    move.b    #0,mode
  314.     move.b    #0,endcounter
  315.     move.b    you,d0
  316.     move.b    cpu,d1
  317.     sub.b    d0,d1
  318.     add.b    #64,d1
  319.     cmp.b    #64,d1
  320.     beq    yep1
  321.     cmp.b    #64,d1
  322.     bgt    yep2
  323.     PRINT    msg5,#22,#126
  324.     bra    event
  325. yep1    PRINT    msg6,#6,#126
  326.     bra    event
  327. yep2    PRINT    msg7,#18,#126
  328.     bra    event
  329. pe1    ASK    one,#0,pe2,iwi1     ;was ist frei ?
  330. pe2    ASK    eight,#0,pe3,iwi8
  331. pe3    ASK    one,#7,pe4,iwi57b
  332. pe4    ASK    eight,#7,pl1,iwi64b
  333. pl1    ASK    one,#2,pl2,iwi17
  334. pl2    ASK    one,#3,pl3,iwi25
  335. pl3    ASK    one,#4,pl4,iwi33be
  336. pl4    ASK    one,#5,pl5,iwi41be
  337. pl5    ASK    two,#2,pl6,iwi18
  338. pl6    ASK    two,#3,pl7,iwi26
  339. pl7    ASK    two,#4,pl8,iwi34be
  340. pl8    ASK    two,#5,pl9,iwi42b
  341. pl9    ASK    three,#0,pl10,iwi3
  342. pl10    ASK    three,#1,pl11,iwi11
  343. pl11    ASK    three,#2,pl12,iwi19
  344. pl12    ASK    three,#3,pl13,iwi27
  345. pl13    ASK    three,#4,pl14,iwi35be
  346. pl14    ASK    three,#5,pl15,iwi43b
  347. pl15    ASK    three,#6,pl16,iwi51b
  348. pl16    ASK    three,#7,pl17,iwi59b
  349. pl17    ASK    four,#0,pl18,iwi4
  350. pl18    ASK    four,#1,pl19,iwi12
  351. pl19    ASK    four,#2,pl20,iwi20
  352. pl20    ASK    four,#5,pl21,iwi44b
  353. pl21    ASK    four,#6,pl22,iwi52b
  354. pl22    ASK    four,#7,pl23,iwi60b
  355. pl23    ASK    five,#0,pl24,iwi5
  356. pl24    ASK    five,#1,pl25,iwi13
  357. pl25    ASK    five,#2,pl26,iwi21
  358. pl26    ASK    five,#5,pl27,iwi45b
  359. pl27    ASK    five,#6,pl28,iwi53b
  360. pl28    ASK    five,#7,pl29,iwi61b
  361. pl29    ASK    six,#0,pl30,iwi6
  362. pl30    ASK    six,#1,pl31,iwi14
  363. pl31    ASK    six,#2,pl32,iwi22
  364. pl32    ASK    six,#3,pl33,iwi30
  365. pl33    ASK    six,#4,pl34,iwi38be
  366. pl34    ASK    six,#5,pl35,iwi46b
  367. pl35    ASK    six,#6,pl36,iwi54b
  368. pl36    ASK    six,#7,pl37,iwi62b
  369. pl37    ASK    seven,#2,pl38,iwi23
  370. pl38    ASK    seven,#3,pl39,iwi31
  371. pl39    ASK    seven,#4,pl40,iwi39be
  372. pl40    ASK    seven,#5,pl41,iwi47b
  373. pl41    ASK    eight,#2,pl42,iwi24
  374. pl42    ASK    eight,#3,pl43,iwi32
  375. pl43    ASK    eight,#4,pl44,iwi40be
  376. pl44    ASK    eight,#5,pl45,iwi48b
  377. pl45    ASK    one,#1,pl46,iwi9
  378. pl46    ASK    two,#0,pl47,iwi2
  379. pl47    ASK    two,#1,pl48,iwi10
  380. pl48    ASK    eight,#1,pl49,iwi16
  381. pl49    ASK    seven,#0,pl50,iwi7
  382. pl50    ASK    seven,#1,pl51,iwi15
  383. pl51    ASK    one,#6,pl52,iwi49b
  384. pl52    ASK    two,#7,pl53,iwi58b
  385. pl53    ASK    two,#6,pl54,iwi50b
  386. pl54    ASK    eight,#6,pl55,iwi56b
  387. pl55    ASK    seven,#7,pl56,iwi63b
  388. pl56    ASK    seven,#6,eve4,iwi55b
  389.  
  390. event    move.b    #0,upper
  391.     move.b    #0,drupper
  392.     move.b    #0,righter
  393.     move.b    #0,drowner
  394.     move.b    #0,downer
  395.     move.b    #0,dlowner
  396.     move.b    #0,lefter
  397.     move.b    #0,dlupper
  398.     move.l    wptr,a0
  399.     move.l    wd_UserPort(a0),a0
  400.     move.l    a0,a5
  401.     CALLEXEC    WaitPort
  402.     move.l    a5,a0
  403.     CALLEXEC    GetMsg
  404.     move.l    d0,a1
  405.     move.l    im_Class(a1),d4
  406.     move.w    im_Code(a1),d5
  407.     move.l    im_IAddress(a1),a4
  408.     CALLEXEC    ReplyMsg
  409.     cmp.l    #CLOSEWINDOW,d4
  410.     beq    dubblepseudo
  411.     move.w    gg_GadgetID(a4),d0
  412.     sub    #1,d0
  413.     tst.b    d0
  414.     beq    .welchesG
  415. .ret    lsl    #2,d0
  416.     lea.l    table,a0
  417.     move.l    (a0,d0),a0
  418.     lea    offset,a3
  419.     lea    byte,a4
  420.     jmp    (a0)
  421.  
  422. .welchesG    move.l    wptr,a0
  423.     moveq.l    #0,d0
  424.     moveq.l    #0,d1
  425.     move.w    12(a0),d1
  426.     move.w    14(a0),d0
  427.     sub    #13,d1
  428.     sub    #133,d0
  429.     divu    #30,d0
  430.     and.l    #$f,d0
  431.     lsl    #3,d0
  432.     divu    #15,d1
  433.     and.l    #$f,d1
  434.     add.b    d1,d0
  435.     bra    .ret
  436.  
  437. * Your move :            
  438. * ------------
  439. iw1    ASK    one,#0,event,iwi1
  440. iwi1    move.b    #0,(a3)        ;was willst du ziehen ?
  441.     move.b    #0,(a4)
  442.     jsr    poss
  443.     jmp    zwischen
  444. iw2    ASK    two,#0,event,iwi2
  445. iwi2    move.b    #4,(a3)
  446.     move.b    #0,(a4)
  447.     jsr    poss
  448.     jmp    zwischen
  449. dubblepseudo    jmp    pseudoclosemain
  450. iw3    ASK    three,#0,event,iwi3
  451. iwi3    move.b    #8,(a3)
  452.     move.b    #0,(a4)
  453.     jsr    poss
  454.     jmp    zwischen
  455. iw4    ASK    four,#0,event,iwi4
  456. iwi4    move.b    #12,(a3)
  457.     move.b    #0,(a4)
  458.     jsr    poss
  459.     jmp    zwischen
  460. iw5    ASK    five,#0,event,iwi5
  461. iwi5    move.b    #16,(a3)
  462.     move.b    #0,(a4)
  463.     jsr    poss
  464.     jmp    zwischen
  465. pseudoevent    jmp    vorevent
  466. iw6    ASK    six,#0,event,iwi6
  467. iwi6    move.b    #20,(a3)
  468.     move.b    #0,(a4)
  469.     jsr    poss
  470.     jmp    zwischen
  471. iw7    ASK    seven,#0,event,iwi7
  472. iwi7    move.b    #24,(a3)
  473.     move.b    #0,(a4)
  474.     jsr    poss
  475.     jmp    zwischen
  476. iw8    ASK    eight,#0,event,iwi8
  477. iwi8    move.b    #28,(a3)
  478.     move.b    #0,(a4)
  479.     jsr    poss    
  480.     jmp    zwischen
  481. iw9    ASK    one,#1,event,iwi9
  482. iwi9    move.b    #0,(a3)
  483.     move.b    #1,(a4)
  484.     jsr    poss
  485.     jmp    zwischen
  486. backy1    jmp    backy2
  487. bts1    jmp    bts2
  488. ots1    jmp    ots2
  489. iw10    ASK    two,#1,event,iwi10
  490. iwi10    move.b    #4,(a3)
  491.     move.b    #1,(a4)
  492.     jsr    poss
  493.     jmp    zwischen
  494. iw11    ASK    three,#1,event,iwi11
  495. iwi11    move.b    #8,(a3)
  496.     move.b    #1,(a4)
  497.     jsr    poss
  498.     jmp    zwischen
  499. iw12    ASK    four,#1,pseudoevent,iwi12
  500. iwi12    move.b    #12,(a3)
  501.     move.b    #1,(a4)
  502.     jsr    poss
  503.     jmp    zwischen
  504. iw13    ASK    five,#1,pseudoevent,iwi13
  505. iwi13    move.b    #16,(a3)
  506.     move.b    #1,(a4)
  507.     jsr    poss
  508.     jmp    zwischen
  509. iw14    ASK    six,#1,pseudoevent,iwi14
  510. iwi14    move.b    #20,(a3)
  511.     move.b    #1,(a4)
  512.     jsr    poss
  513.     jmp    zwischen
  514. iw15    ASK    seven,#1,pseudoevent,iwi15
  515. iwi15    move.b    #24,(a3)
  516.     move.b    #1,(a4)
  517.     jsr    poss
  518.     jmp    zwischen
  519. iw16    ASK    eight,#1,pseudoevent,iwi16
  520. iwi16    move.b    #28,(a3)
  521.     move.b    #1,(a4)
  522.     jsr    poss
  523.     jmp    zwischen
  524. iw17    ASK    one,#2,pseudoevent,iwi17
  525. iwi17    move.b    #0,(a3)
  526.     move.b    #2,(a4)
  527.     jsr    poss
  528.     jmp    zwischen
  529. iw18    ASK    two,#2,pseudoevent,iwi18
  530. iwi18    move.b    #4,(a3)
  531.     move.b    #2,(a4)
  532.     jsr    poss
  533.     jmp    zwischen
  534. iw19    ASK    three,#2,pseudoevent,iwi19
  535. iwi19    move.b    #8,(a3)
  536.     move.b    #2,(a4)
  537.     jsr    poss
  538.     jmp    zwischen
  539. iw20    ASK    four,#2,pseudoevent,iwi20
  540. iwi20    move.b    #12,(a3)
  541.     move.b    #2,(a4)
  542.     jsr    poss
  543.     jmp    zwischen
  544. iw21    ASK    five,#2,pseudoevent,iwi21
  545. iwi21    move.b    #16,(a3)
  546.     move.b    #2,(a4)
  547.     jsr    poss
  548.     jmp    zwischen
  549. iwi33be    jmp    iwi33
  550. iwi34be    jmp    iwi34
  551. iwi35be    jmp    iwi35
  552. iwi38be    jmp    iwi38
  553. iwi39be    jmp    iwi39
  554. iwi40be    jmp    iwi40
  555. iw22    ASK    six,#2,pseudoevent,iwi22
  556. iwi22    move.b    #20,(a3)
  557.     move.b    #2,(a4)
  558.     jsr    poss
  559.     jmp    zwischen
  560. iw23    ASK    seven,#2,pseudoevent,iwi23
  561. iwi23    move.b    #24,(a3)
  562.     move.b    #2,(a4)
  563.     jsr    poss
  564.     jmp    zwischen
  565. u3    jmp    u4
  566. iwi41be    jmp    iwi41
  567. iwi42b    jmp    iwi42
  568. iwi43b    jmp    iwi43
  569. iwi44b    jmp    iwi44
  570. iwi45b    jmp    iwi45
  571. iwi46b    jmp    iwi46
  572. iwi47b    jmp    iwi47
  573. iwi48b    jmp    iwi48
  574. iwi49b    jmp    iwi49
  575. iwi50b    jmp    iwi50
  576. iw24    ASK    eight,#2,pseudoevent,iwi24
  577. iwi24    move.b    #28,(a3)
  578.     move.b    #2,(a4)
  579.     jsr    poss
  580.     jmp    zwischen
  581. depsef    jmp    pseudoevent
  582. iw25    ASK    one,#3,depsef,iwi25
  583. iwi25    move.b    #0,(a3)
  584.     move.b    #3,(a4)
  585.     jsr    poss
  586.     jmp    zwischen
  587. iw26    ASK    two,#3,depsef,iwi26
  588. iwi26    move.b    #4,(a3)
  589.     move.b    #3,(a4)
  590.     jsr    poss
  591.     jmp    zwischen
  592. iwi51b    jmp    iwi51
  593. iwi52b    jmp    iwi52
  594. iwi53b    jmp    iwi53
  595. iwi54b    jmp    iwi54
  596. iwi55b    jmp    iwi55
  597. iwi56b    jmp    iwi56
  598. iwi57b    jmp    iwi57
  599. iwi58b    jmp    iwi58
  600. iwi59b    jmp    iwi59
  601. iwi60b    jmp    iwi60
  602. iwi61b    jmp    iwi61
  603. iwi62b    jmp    iwi62
  604. iwi63b    jmp    iwi63
  605. iwi64b    jmp    iwi64
  606. iw27    ASK    three,#3,depsef,iwi27
  607. iwi27    move.b    #8,(a3)
  608.     move.b    #3,(a4)
  609.     jsr    poss
  610.     jmp    zwischen
  611. iw28    ASK    four,#3,depsef,depsef
  612.     jmp    depsef
  613. iw29    ASK    five,#3,depsef,depsef
  614.     jmp    depsef
  615. pseudoclosemain    jmp    closemain
  616. iw30    ASK    six,#3,depsef,iwi30
  617. iwi30    move.b    #20,(a3)
  618.     move.b    #3,(a4)
  619.     jsr    poss
  620.     jmp    zwischen
  621. iw31    ASK    seven,#3,depsef,iwi31
  622. iwi31    move.b    #24,(a3)
  623.     move.b    #3,(a4)
  624.     jsr    poss
  625.     jmp    zwischen
  626. iw32    ASK    eight,#3,depsef,iwi32
  627. iwi32    move.b    #28,(a3)
  628.     move.b    #3,(a4)
  629.     jsr    poss
  630.     jmp    zwischen
  631. eve5    jmp    eve4
  632. iw33    ASK    one,#4,depsef,iwi33
  633. iwi33    move.b    #0,(a3)
  634.     move.b    #4,(a4)
  635.     jsr    poss
  636.     jmp    zwischen
  637. iw34    ASK    two,#4,depsef,iwi34
  638. iwi34    move.b    #4,(a3)
  639.     move.b    #4,(a4)
  640.     jsr    poss
  641.     jmp    zwischen
  642. iw35    ASK    three,#4,depsef,iwi35
  643. iwi35    move.b    #8,(a3)
  644.     move.b    #4,(a4)
  645.     jsr    poss
  646.     jmp    zwischen
  647. iw36    ASK    four,#4,depsef,depsef
  648.     jmp    depsef
  649. iw37    ASK    five,#4,depsef,depsef
  650.     jmp    depsef
  651. iw38    ASK    six,#4,depsef,iwi38
  652. iwi38    move.b    #20,(a3)
  653.     move.b    #4,(a4)
  654.     jsr    poss
  655.     jmp    zwischen
  656. iw39    ASK    seven,#4,depsef,iwi39
  657. iwi39    move.b    #24,(a3)
  658.     move.b    #4,(a4)
  659.     jsr    poss
  660.     jmp    zwischen
  661. backy2    jmp    backy3
  662. bts2    jmp    bts3
  663. ots2    jmp    ots3
  664. iw40    ASK    eight,#4,depsef,iwi40
  665. iwi40    move.b    #28,(a3)
  666.     move.b    #4,(a4)
  667.     jsr    poss
  668.     jmp    zwischen
  669. iw41    ASK    one,#5,depsef,iwi41
  670. iwi41    move.b    #0,(a3)
  671.     move.b    #5,(a4)
  672.     jsr    poss
  673.     jmp    zwischen
  674. iw42    ASK    two,#5,depsef,iwi42
  675. iwi42    move.b    #4,(a3)
  676.     move.b    #5,(a4)
  677.     jsr    poss
  678.     jmp    zwischen
  679. iw43    ASK    three,#5,depsef,iwi43
  680. iwi43    move.b    #8,(a3)
  681.     move.b    #5,(a4)
  682.     jsr    poss
  683.     jmp    zwischen
  684. iw44    ASK    four,#5,depsef,iwi44
  685. iwi44    move.b    #12,(a3)
  686.     move.b    #5,(a4)
  687.     jsr    poss
  688.     jmp    zwischen
  689. iw45    ASK    five,#5,depsef,iwi45
  690. iwi45    move.b    #16,(a3)
  691.     move.b    #5,(a4)
  692.     jsr    poss
  693.     jmp    zwischen
  694. iw46    ASK    six,#5,depsef,iwi46
  695. iwi46    move.b    #20,(a3)
  696.     move.b    #5,(a4)
  697.     jsr    poss
  698.     jmp    zwischen
  699. iw47    ASK    seven,#5,depsef,iwi47
  700. iwi47    move.b    #24,(a3)
  701.     move.b    #5,(a4)
  702.     jsr    poss
  703.     jmp    zwischen
  704. iwi1b    jmp    iwi1
  705. iwi2b    jmp    iwi2
  706. iwi3b    jmp    iwi3
  707. iwi4b    jmp    iwi4
  708. iwi5b    jmp    iwi5
  709. iwi6b    jmp    iwi6
  710. iw48    ASK    eight,#5,depsef,iwi48
  711. iwi48    move.b    #28,(a3)
  712.     move.b    #5,(a4)
  713.     jsr    poss
  714.     jmp    zwischen
  715. iw49    ASK    one,#6,depsef,iwi49
  716. iwi49    move.b    #0,(a3)
  717.     move.b    #6,(a4)
  718.     jsr    poss
  719.     jmp    zwischen
  720. iw50    ASK    two,#6,depsef,iwi50
  721. iwi50    move.b    #4,(a3)
  722.     move.b    #6,(a4)
  723.     jsr    poss
  724.     jmp    zwischen
  725. iwi7b    jmp    iwi7
  726. iwi8b    jmp    iwi8
  727. iwi9b    jmp    iwi9
  728. iwi10b    jmp    iwi10
  729. iwi11b    jmp    iwi11
  730. iwi12b    jmp    iwi12
  731. iw51    ASK    three,#6,depsef,iwi51
  732. iwi51    move.b    #8,(a3)
  733.     move.b    #6,(a4)
  734.     jsr    poss
  735.     jmp    zwischen
  736. iw52    ASK    four,#6,depsef,iwi52
  737. iwi52    move.b    #12,(a3)
  738.     move.b    #6,(a4)
  739.     jsr    poss
  740.     jmp    zwischen
  741. iwi13b    jmp    iwi13
  742. iwi14b    jmp    iwi14
  743. iwi15b    jmp    iwi15
  744. iwi16b    jmp    iwi16
  745. iwi17b    jmp    iwi17
  746. iwi18b    jmp    iwi18
  747. iwi19b    jmp    iwi19
  748. iwi20b    jmp    iwi20
  749. iw53    ASK    five,#6,depsef,iwi53
  750. iwi53    move.b    #16,(a3)
  751.     move.b    #6,(a4)
  752.     jsr    poss
  753.     jmp    zwischen
  754. iw54    ASK    six,#6,depsef,iwi54
  755. iwi54    move.b    #20,(a3)
  756.     move.b    #6,(a4)
  757.     jsr    poss
  758.     jmp    zwischen
  759. iwi21b    jmp    iwi21
  760. iwi22b    jmp    iwi22
  761. iwi23b    jmp    iwi23
  762. iwi24b    jmp    iwi24
  763. iwi25b    jmp    iwi25
  764. iwi26b    jmp    iwi26
  765. iwi27b    jmp    iwi27
  766. iw55    ASK    seven,#6,depsef,iwi55
  767. iwi55    move.b    #24,(a3)
  768.     move.b    #6,(a4)
  769.     jsr    poss
  770.     jmp    zwischen
  771. iwi30b    jmp    iwi30
  772. iwi31b    jmp    iwi31
  773. iwi32b    jmp    iwi32
  774. iwi33b    jmp    iwi33
  775. iwi34b    jmp    iwi34
  776. iwi35b    jmp    iwi35
  777. iwi38b    jmp    iwi38
  778. iwi39b    jmp    iwi39
  779. iwi40b    jmp    iwi40
  780. iwi41b    jmp    iwi41
  781. iw56    ASK    eight,#6,depsef,iwi56
  782. iwi56    move.b    #28,(a3)
  783.     move.b    #6,(a4)
  784.     jsr    poss
  785.     jmp    zwischen
  786. iw57    ASK    one,#7,depsef,iwi57
  787. iwi57    move.b    #0,(a3)
  788.     move.b    #7,(a4)
  789.     jsr    poss
  790.     jmp    zwischen
  791. u4    jmp    u5
  792. iw58    ASK    two,#7,depsef,iwi58
  793. iwi58    move.b    #4,(a3)
  794.     move.b    #7,(a4)
  795.     jsr    poss
  796.     jmp    zwischen
  797. iw59    ASK    three,#7,depsef,iwi59
  798. iwi59    move.b    #8,(a3)
  799.     move.b    #7,(a4)
  800.     jsr    poss
  801.     jmp    zwischen
  802. iw60    ASK    four,#7,depsef,iwi60
  803. iwi60    move.b    #12,(a3)
  804.     move.b    #7,(a4)
  805.     jsr    poss
  806.     jmp    zwischen
  807. iw61    ASK    five,#7,depsef,iwi61
  808. iwi61    move.b    #16,(a3)
  809.     move.b    #7,(a4)
  810.     jsr    poss
  811.     jmp    zwischen
  812. rucksack    jmp    depsef
  813. iw62    ASK    six,#7,depsef,iwi62
  814. iwi62    move.b    #20,(a3)
  815.     move.b    #7,(a4)
  816.     jsr    poss
  817.     jmp    zwischen
  818. iw63    ASK    seven,#7,depsef,iwi63
  819. iwi63    move.b    #24,(a3)
  820.     move.b    #7,(a4)
  821.     jsr    poss
  822.     jmp    zwischen
  823. iw64    ASK    eight,#7,depsef,iwi64
  824. iwi64    move.b    #28,(a3)
  825.     move.b    #7,(a4)
  826.     jsr    poss
  827. zwischen    move.b    mode,d0
  828.     cmp.b    #1,d0
  829.     beq    movein
  830.     cmp.b    #2,d0
  831.     beq    eve5
  832.     move.b    endcounter,d0
  833.     tst.b    d0
  834.     beq    rucksack
  835.     moveq.l    #0,d0
  836.     move.b    moves,d0
  837.     divu    #10,d0
  838.     swap    d0
  839.     and.l    #$f,d0
  840.     lsl    #2,d0
  841.     lea    tableX(pc),a0
  842.     move.l    (a0,d0),a0        ;in welchen move ?
  843.     move.l    (a0)+,a5
  844.     lea    one(pc),a4
  845.     jsr    chab
  846.     move.l    (a0)+,a5
  847.     lea    two(pc),a4
  848.     jsr    chab
  849.     move.l    (a0)+,a5
  850.     lea    three(pc),a4
  851.     jsr    chab
  852.     move.l    (a0)+,a5
  853.     lea    four(pc),a4
  854.     jsr    chab
  855.     move.l    (a0)+,a5
  856.     lea    five(pc),a4
  857.     jsr    chab
  858.     move.l    (a0)+,a5
  859.     lea    six(pc),a4
  860.     jsr    chab
  861.     move.l    (a0)+,a5
  862.     lea    seven(pc),a4
  863.     jsr    chab
  864.     move.l    (a0)+,a5
  865.     lea    eight(pc),a4
  866.     jsr    chab
  867.     move.b    upper,d0
  868.     tst.b    d0
  869.     beq    n1
  870.     CHANGE    #4,#0,#2,#1,#3
  871. n1    move.b    drupper,d0
  872.     tst.b    d0
  873.     beq    n2
  874.     CHANGE    #4,#-1,#2,#1,#3
  875. n2    move.b    righter,d0
  876.     tst.b    d0
  877.     beq    n3
  878.     CHANGE    #0,#-1,#2,#1,#3
  879. n3    move.b    drowner,d0
  880.     tst.b    d0
  881.     beq    n4
  882.     CHANGE    #-4,#-1,#2,#1,#3
  883. n4    move.b    downer,d0
  884.     tst.b    d0
  885.     beq    n5
  886.     CHANGE    #-4,#0,#2,#1,#3
  887. n5    move.b    dlowner,d0
  888.     tst.b    d0
  889.     beq    n6
  890.     CHANGE    #-4,#1,#2,#1,#3
  891. n6    move.b    lefter,d0
  892.     tst.b    d0
  893.     beq    n7
  894.     CHANGE    #0,#1,#2,#1,#3
  895. n7    move.b    dlupper,d0
  896.     tst.b    d0
  897.     beq    fxs
  898.     CHANGE    #4,#1,#2,#1,#3
  899. fxs    move.b    #1,mode
  900.     move.b    moves,d0
  901.     addq.b    #1,d0
  902.     move.b    d0,moves
  903.     move.b    backs,d0
  904.     cmp.b    #10,d0
  905.     beq    .label1
  906.     addq.b    #1,d0
  907.     move.b    d0,backs
  908. .label1    jsr    count
  909.     HEXER    msg2,you,#90
  910.     HEXER    msg3,cpu,#104
  911.     jsr    clearDots
  912. u5    move.b    cpu,d0        ;der Computer zieht !
  913.     tst.b    d0
  914.     beq    r2        ;CPU verliert
  915.     move.b    #0,TwentyEight
  916.     move.b    #0,passone
  917.     move.b    #0,hicounter
  918.     move.b    #0,endcounter
  919.     move.b    #1,mode
  920.     move.b    #1,fab1
  921.     move.b    #2,fab2        ;Farben zum Vergleichen !
  922. u7    move.b    #0,ou
  923. uptohim    move.b    #0,upper
  924.     move.b    #0,drupper
  925.     move.b    #0,righter
  926.     move.b    #0,dlupper
  927.     move.b    #0,downer
  928.     move.b    #0,dlowner
  929.     move.b    #0,lefter
  930.     move.b    #0,dlupper
  931.     moveq.l    #0,d4
  932.     move.b    ou,d4
  933.     addq.b    #1,d4
  934.     move.b    d4,ou
  935.     moveq.l    #0,d5
  936.     move.b    ou,d5
  937.     cmp.b    #61,d5
  938.     beq    executeit
  939. u2    lea    offset(pc),a3
  940.     lea    byte(pc),a4
  941.     lea    tableIII(pc),a0
  942.     moveq.l    #0,d5
  943.     move.b    ou,d5
  944.     lsl    #2,d5
  945.     move.l    (a0,d5),a0
  946.     jmp    (a0)
  947. e1    ASK    one,#0,movein,iwi1b    ;was ist frei ?
  948. e2    ASK    eight,#0,movein,iwi8b
  949. e3    ASK    one,#7,movein,iwi57    ;die Ecken vielleicht ?
  950. e4    ASK    eight,#7,movein,iwi64
  951. l1    ASK    one,#1,movein,iwi9b    ;oder die Randfelder ?
  952. l2    ASK    one,#2,movein,iwi17b
  953. l3    ASK    one,#3,movein,iwi25b
  954. l4    ASK    one,#4,movein,iwi33b
  955. l5    ASK    one,#5,movein,iwi41b
  956. l6    ASK    one,#6,movein,iwi49b
  957. l7    ASK    eight,#1,movein,iwi16b
  958. l8    ASK    eight,#2,movein,iwi24b
  959. l9    ASK    eight,#3,movein,iwi32b
  960. l10    ASK    eight,#4,movein,iwi40b
  961. l11    ASK    eight,#5,movein,iwi48
  962. l12    ASK    eight,#6,movein,iwi56
  963. l13    ASK    two,#0,movein,iwi2b
  964. l14    ASK    three,#0,movein,iwi3b
  965. l15    ASK    four,#0,movein,iwi4b
  966. l16    ASK    five,#0,movein,iwi5b
  967. l17    ASK    six,#0,movein,iwi6b
  968. l18    ASK    seven,#0,movein,iwi7b
  969. l19    ASK    two,#7,movein,iwi58
  970. l20    ASK    three,#7,movein,iwi59
  971. l21    ASK    four,#7,movein,iwi60
  972. l22    ASK    five,#7,movein,iwi61
  973. l23    ASK    six,#7,movein,iwi62
  974. l24    ASK    seven,#7,movein,iwi63
  975. l25    ASK    three,#2,movein,iwi19b    ;die Innenfelder (4x4) !?
  976. l26    ASK    three,#3,movein,iwi27b
  977. l27    ASK    three,#4,movein,iwi35b
  978. l28    ASK    three,#5,movein,iwi43
  979. l29    ASK    four,#2,movein,iwi20b
  980. l30    ASK    four,#5,movein,iwi44
  981. l31    ASK    five,#2,movein,iwi21b
  982. l32    ASK    five,#5,movein,iwi45
  983. l33    ASK    six,#2,movein,iwi22b
  984. l34    ASK    six,#3,movein,iwi30b
  985. l35    ASK    six,#4,movein,iwi38b
  986. l36    ASK    six,#5,movein,iwi46
  987. l37    ASK    two,#2,movein,iwi18b    ;dann die übrigen Felder ?
  988. l38    ASK    two,#3,movein,iwi26b
  989. l39    ASK    two,#4,movein,iwi34b
  990. l40    ASK    two,#5,movein,iwi42
  991. l41    ASK    three,#1,movein,iwi11b
  992. l42    ASK    three,#6,movein,iwi51
  993. l43    ASK    four,#1,movein,iwi12b
  994. l44    ASK    four,#6,movein,iwi52
  995. l45    ASK    five,#1,movein,iwi13b
  996. l46    ASK    five,#6,movein,iwi53
  997. l47    ASK    six,#1,movein,iwi14b
  998. l48    ASK    six,#6,movein,iwi54
  999. l49    ASK    seven,#2,movein,iwi23b    
  1000. l50    ASK    seven,#3,movein,iwi31b
  1001. l51    ASK    seven,#4,movein,iwi39b
  1002. l52    ASK    seven,#5,movein,iwi47
  1003. l53    ASK    seven,#1,movein,iwi15b    ;nicht die Voreckfelder !
  1004. l54    ASK    two,#1,movein,iwi10b
  1005. l55    ASK    two,#6,movein,iwi50
  1006. l56    ASK    seven,#6,movein,iwi55
  1007.  
  1008. movein    cmp.b    #3,levelbyte
  1009.     bne    .Max
  1010.     cmp.b    #29,ou
  1011.     bne    .Min
  1012.     cmp.b    #6,hicounter    ;eins der Randfelder frei ?
  1013.     bge    executeit
  1014. .Min    cmp.b    #1,levelbyte
  1015.     beq    .Max
  1016.     cmp.b    #2,levelbyte
  1017.     beq    .Min2
  1018.     cmp.b    #41,ou
  1019.     bne    .Max
  1020.     cmp.b    #4,hicounter    ;Innenfeld (4x4)
  1021.     bge    executeit
  1022.     bra    .Max
  1023. .Min2    cmp.b    #41,ou        ;bei Level 2
  1024.     bge    .Max
  1025.     cmp.b    #28,ou
  1026.     bls    .Max
  1027.     cmp.b    #0,endcounter
  1028.     bne    m67
  1029. .Max    move.b    endcounter,d0    ;Rückkehr
  1030.     tst.b    d0
  1031.     beq    uptohim
  1032.     cmp.b    #1,levelbyte
  1033.     beq    .skip1
  1034.     cmp.b    #4,ou        ;is'ne Ecke frei ?
  1035.     bls    m67
  1036. .skip1    addq.b    #3,d0        ;erhöht um 3 für better blanks
  1037.     move.b    d0,endcounter
  1038.     move.b    ou,d0
  1039.     cmp.b    #3,levelbyte
  1040.     bne    .skip2
  1041.     cmp.b    #16,d0
  1042.     bls    mTV1
  1043.     cmp.b    #28,d0
  1044.     bls    mTV2
  1045. .skip2    cmp.b    #1,levelbyte
  1046.     beq    m7
  1047.     cmp.b    #57,d0        ;Voreckfelder
  1048.     beq    m8
  1049.     cmp.b    #58,d0        
  1050.     beq    m8b
  1051.     cmp.b    #59,d0        
  1052.     beq    m8c
  1053.     cmp.b    #60,d0        
  1054.     beq    m8d
  1055. m7    move.b    hicounter,d1
  1056.     move.b    endcounter,d0
  1057.     cmp.b    d1,d0
  1058.     beq    m40
  1059.     cmp.b    d1,d0
  1060.     bge    m2
  1061. m3    move.b    #0,endcounter
  1062.     jmp    uptohim
  1063. m2    move.b    endcounter,hicounter
  1064.     move.b    offset,highoff
  1065.     move.b    byte,highbyte
  1066.     move.b    upper,hiupper
  1067.     move.b    drupper,hidrupper
  1068.     move.b    righter,hirighter
  1069.     move.b    drowner,hidrowner
  1070.     move.b    downer,hidowner
  1071.     move.b    dlowner,hidlowner
  1072.     move.b    lefter,hilefter
  1073.     move.b    dlupper,hidlupper
  1074.     bra    m3
  1075. m40    move.b    $dff007,d0        ;was soll DAS ???
  1076.     btst    #1,d0        ;Ah , Zufall !
  1077.     beq    m3
  1078.     bra    m2
  1079. m8    lea    eight(pc),a6
  1080.     move.b    (a6),d0
  1081. m8all    cmp.b    #2,d0        ;Status der Ecke
  1082.     beq    m7
  1083.     move.b    #1,endcounter    ;schon von Schwarz genommen
  1084.     tst.b    d0
  1085.     beq    m7        ;noch frei
  1086.     move.b    #2,endcounter
  1087.     bra    m7        ;schon von Orange genommen
  1088. m8d    lea    eight(pc),a6
  1089.     move.b    7(a6),d0
  1090.     bra    m8all
  1091. m8c    lea    one(pc),a6
  1092.     move.b    7(a6),d0
  1093.     bra    m8all
  1094. m8b    lea    one(pc),a6
  1095.     move.b    (a6),d0
  1096.     bra    m8all
  1097. m11    move.b    hicounter,d0
  1098.     tst.b    d0
  1099.     beq    u2
  1100.     move.b    highbyte,d0
  1101.     tst.b    d0
  1102.     beq    m12
  1103.     cmp.b    #7,d0
  1104.     beq    m12
  1105.     move.b    hirighter,d0
  1106.     tst.b    d0
  1107.     beq    m13
  1108.     bra    m18
  1109. m13    moveq.l    #0,d2
  1110.     moveq.l    #0,d3
  1111.     move.b    highoff,d2
  1112.     lea    tableII(pc),a4
  1113.     move.l    (a4,d2),a5
  1114.     move.b    highbyte,d3
  1115.     addq.b    #1,d3
  1116.     move.b    (a5,d3),d4
  1117.     cmp.b    #1,d4
  1118.     beq.s    m16
  1119.     bra    m18
  1120. m16    move.b    #1,hicounter
  1121.     jmp    u2    
  1122. m18    move.b    hilefter,d0
  1123.     tst.b    d0
  1124.     beq.s    m19
  1125.     bra    executeit
  1126. m19    moveq.l    #0,d2
  1127.     moveq.l    #0,d3
  1128.     move.b    highoff,d2
  1129.     lea    tableII(pc),a4
  1130.     move.l    (a4,d2),a5
  1131.     move.b    highbyte,d3
  1132.     subq.b    #1,d3
  1133.     move.b    (a5,d3),d4
  1134.     cmp.b    #1,d4
  1135.     beq.s    m22
  1136.     bra    executeit
  1137. m22    move.b    #1,hicounter
  1138.     jmp    u2    
  1139. m12    move.b    hidowner,d0
  1140.     tst.b    d0
  1141.     beq.s    m23
  1142.     bra    m28
  1143. m23    moveq.l    #0,d2
  1144.     moveq.l    #0,d3
  1145.     move.b    highoff,d2
  1146.     addq.b    #4,d2
  1147.     lea    tableII(pc),a4
  1148.     move.l    (a4,d2),a5
  1149.     move.b    highbyte,d3
  1150.     move.b    (a5,d3),d4
  1151.     cmp.b    #1,d4
  1152.     beq.s    m26
  1153.     bra    m28
  1154. m26    move.b    #1,hicounter
  1155.     jmp    u2    
  1156. m28    move.b    hiupper,d0
  1157.     tst.b    d0
  1158.     beq    m29
  1159.     bra    executeit
  1160. m29    moveq.l    #0,d2
  1161.     moveq.l    #0,d3
  1162.     move.b    highoff,d2
  1163.     subq.b    #4,d2
  1164.     lea    tableII(pc),a4
  1165.     move.l    (a4,d2),a5
  1166.     move.b    highbyte,d3
  1167.     move.b    (a5,d3),d4
  1168.     cmp.b    #1,d4
  1169.     beq.s    m32
  1170.     bra    executeit
  1171. m32    move.b    #1,hicounter
  1172.     jmp    u2    
  1173. m6    move.b    #0,mode
  1174.     jmp    rucksack
  1175.  
  1176.  
  1177. mTV1    bra    special_case
  1178. mTV1back    moveq.l    #0,d0        ;Randfelder checken
  1179.     moveq.l    #0,d5
  1180.     move.b    offset(pc),d0
  1181.     lea    tableII(pc),a2
  1182.     move.l    (a2,d0),a0
  1183.     moveq.l    #0,d1
  1184.     move.b    byte,d1
  1185.     move.l    d1,d6        ;retten
  1186.     subq.b    #1,d1
  1187. .label2q    move.b    (a0,d1),d2        ;nach links
  1188.     moveq.b    #1,d5
  1189.     tst.b    d2
  1190.     beq    to_the_right    ;d5 = 1  -  geht OK
  1191.     moveq.b    #0,d5        ;d5 = 0  -  no way
  1192.     cmp.b    #2,d2
  1193.     bne    .label1q
  1194.     subq.b    #1,d1
  1195.     cmp.b    #-1,d1
  1196.     beq    m7
  1197.     bra    .label2q
  1198. .label1q    cmp.b    #0,lefter
  1199.     bne    .label3q
  1200.     moveq.b    #0,d5        ;Orange !!!
  1201.     bra    to_the_right
  1202. .label3q    subq.b    #1,d1        ;umdrehbar
  1203.     move.b    (a0,d1),d2
  1204.     cmp.b    #2,d2
  1205.     bne    .label3q
  1206. .label4q    subq.b    #1,d1        ;und danach ?
  1207.     cmp.b    #-1,d1
  1208.     beq    m67
  1209.     move.b    (a0,d1),d2
  1210.     moveq.b    #2,d5        ;d5 = 2  -  umdrehbar
  1211.     tst.b    d2
  1212.     beq    to_the_right
  1213.     moveq.b    #0,d5
  1214.     cmp.b    #1,d2        ;wieder Orange ?
  1215.     beq    to_the_right    ;dann NEIN !
  1216.     bra    .label4q
  1217.  
  1218. to_the_right
  1219.     move.l    d6,d1
  1220.     addq.b    #1,d1
  1221. .label2q    move.b    (a0,d1),d2        ;nach rechts
  1222.     tst.b    d2
  1223.     beq    .ask_for
  1224.     cmp.b    #2,d2
  1225.     bne    .label1q
  1226.     addq.b    #1,d1
  1227.     cmp.b    #8,d1
  1228.     beq    .ask_for
  1229.     bra    .label2q
  1230. .label1q    cmp.b    #0,righter
  1231.     bne    .label3q
  1232. .nein    move.b    #3,endcounter
  1233. .no1    moveq.l    #0,d0
  1234.     move.b    byte,d0
  1235.     cmp.b    #1,d0
  1236.     bne    .no2
  1237.     moveq.b    #0,d0
  1238. .no_all    move.b    (a0,d0),d2
  1239.     tst.b    d2
  1240.     bne    .no3
  1241.     cmp.b    #2,d5
  1242.     beq    m67
  1243.     move.b    #1,endcounter
  1244.     bra    m7
  1245. .no3    cmp.b    #2,d2
  1246.     beq    m7
  1247.     move.b    #2,endcounter
  1248.     bra    m7
  1249. .no2    cmp.b    #6,byte
  1250.     bne    m7
  1251.     moveq.b    #7,d0
  1252.     bra    .no_all
  1253. .label3q    addq.b    #1,d1        ;umdrehbar
  1254.     move.b    (a0,d1),d2
  1255.     cmp.b    #2,d2
  1256.     bne    .label3q
  1257. .label4q    addq.b    #1,d1        ;und danach ?
  1258.     cmp.b    #8,d1
  1259.     beq    m67        ;dann hab ich die Ecke !
  1260.     move.b    (a0,d1),d2
  1261.     tst.b    d2
  1262.     bne    .label5q
  1263.     tst.b    d5
  1264.     beq    .ask_for
  1265.     moveq.b    #2,d5
  1266.     bra    .ask_for
  1267. .label5q    cmp.b    #1,d2        ;wieder Orange ?
  1268.     beq    .nein        ;dann NEIN !
  1269.     bra    .label4q
  1270.  
  1271. .ask_for    tst.b    d5        ;d5 = 0  -  nein
  1272.     beq    .nein
  1273.     cmp.b    #1,byte
  1274.     beq    .no1
  1275.     cmp.b    #6,byte
  1276.     beq    .no1
  1277.     cmp.b    #2,d5
  1278.     beq    m67
  1279.     bra    m7
  1280.  
  1281. special_case        ;Ecke frei-orange-frei-orange-frei
  1282.     lea    one(pc),a0
  1283.     cmp.b    #0,offset
  1284.     beq    .sc1
  1285.     lea    eight(pc),a0
  1286. .sc1    move.b    (a0),d2        ;Ecke frei ?
  1287.     tst.b    d2
  1288.     bne    .scR
  1289.     move.b    1(a0),d2
  1290.     cmp.b    #1,d2        ;Voreckfeld orange ?
  1291.     bne    .scR
  1292.     moveq.l    #1,d0
  1293. .scLoop    addq.b    #1,d0
  1294.     cmp.b    #8,d0
  1295.     beq    .scR
  1296.     move.b    (a0,d0),d2
  1297.     cmp.b    #1,d2
  1298.     beq    .scLoop
  1299.     tst.b    d2        ;danach frei ?
  1300.     bne    .scR
  1301.     move.b    byte,d5
  1302.     cmp.b    d0,d5        ;is'es das Feld ?
  1303.     bne    .scR
  1304.     addq.b    #1,d0
  1305.     cmp.b    #8,d0
  1306.     beq    .scR
  1307.     move.b    (a0,d0),d2
  1308.     cmp.b    #1,d2        ;danach orange ?
  1309.     bne    .scR
  1310. .scLoop2    addq.b    #1,d0
  1311.     cmp.b    #8,d0
  1312.     beq    m67        ;frei oder Ecke !
  1313.     move.b    (a0,d0),d2
  1314.     tst.b    d2
  1315.     beq    m67
  1316.     cmp.b    #1,d2
  1317.     bne    .scR
  1318.     bra    .scLoop2
  1319. .scR    lea    one(pc),a0        ;die rechte Ecke ?
  1320.     cmp.b    #0,offset
  1321.     beq    .sc3
  1322.     lea    eight(pc),a0
  1323. .sc3    move.b    7(a0),d2        ;Ecke frei ?
  1324.     tst.b    d2
  1325.     bne    .scNo
  1326.     move.b    6(a0),d2
  1327.     cmp.b    #1,d2        ;Voreckfeld orange ?
  1328.     bne    .scNo
  1329.     moveq.l    #6,d0
  1330. .scLoop3    subq.b    #1,d0
  1331.     cmp.b    #-1,d0
  1332.     beq    .scNo
  1333.     move.b    (a0,d0),d2
  1334.     cmp.b    #1,d2
  1335.     beq    .scLoop3
  1336.     tst.b    d2        ;danach frei ?
  1337.     bne    .scNo
  1338.     move.b    byte,d5
  1339.     cmp.b    d0,d5
  1340.     bne    .scNo
  1341.     subq.b    #1,d0
  1342.     cmp.b    #-1,d0
  1343.     beq    .scNo
  1344.     move.b    (a0,d0),d2
  1345.     cmp.b    #1,d2        ;danach orange ?
  1346.     bne    .scNo
  1347. .scLoop4    subq.b    #1,d0
  1348.     cmp.b    #-1,d0
  1349.     beq    m67        ;frei oder Ecke !
  1350.     move.b    (a0,d0),d2
  1351.     tst.b    d2
  1352.     beq    m67
  1353.     cmp.b    #1,d2
  1354.     bne    .scNo
  1355.     bra    .scLoop4
  1356. .scNo    bra    mTV1back
  1357.  
  1358.     
  1359.  
  1360.  
  1361. mTV2    bra    special_caseII
  1362. mTV2back    moveq.l    #0,d1        ;Randfelder checken
  1363.     moveq.l    #0,d5
  1364.     move.b    offset(pc),d1
  1365.     lea    tableII(pc),a2
  1366.     moveq.l    #0,d0
  1367.     move.b    byte,d0
  1368.     move.l    d1,d6        ;retten
  1369.     subq.b    #4,d1
  1370. .label2q    move.l    (a2,d1),a0
  1371.     move.b    (a0,d0),d2        ;nach oben
  1372.     moveq.b    #1,d5
  1373.     tst.b    d2
  1374.     beq    to_the_down        ;d5 = 1  -  geht OK
  1375.     moveq.b    #0,d5        ;d5 = 0  -  no way
  1376.     cmp.b    #2,d2
  1377.     bne    .label1q
  1378.     subq.b    #4,d1
  1379.     cmp.b    #-4,d1
  1380.     beq    m7
  1381.     bra    .label2q
  1382. .label1q    cmp.b    #0,upper
  1383.     bne    .label3q
  1384.     moveq.b    #0,d5        ;Orange !!!
  1385.     bra    to_the_down
  1386. .label3q    subq.b    #4,d1
  1387.     move.l    (a2,d1),a0        ;umdrehbar
  1388.     move.b    (a0,d0),d2
  1389.     cmp.b    #2,d2
  1390.     bne    .label3q
  1391. .label4q    subq.b    #4,d1        ;und danach ?
  1392.     cmp.b    #-4,d1
  1393.     beq    m67
  1394.     move.l    (a2,d1),a0
  1395.     move.b    (a0,d0),d2
  1396.     moveq.b    #2,d5
  1397.     tst.b    d2
  1398.     beq    to_the_down
  1399.     moveq.b    #0,d5
  1400.     cmp.b    #1,d2        ;wieder Orange ?
  1401.     beq    to_the_down        ;dann NEIN !
  1402.     bra    .label4q
  1403.  
  1404. to_the_down
  1405.     move.l    d6,d1
  1406.     addq.b    #4,d1
  1407. .label2q    move.l    (a2,d1),a0
  1408.     move.b    (a0,d0),d2        ;nach unten
  1409.     tst.b    d2
  1410.     beq    .ask_for
  1411.     cmp.b    #2,d2
  1412.     bne    .label1q
  1413.     addq.b    #4,d1
  1414.     cmp.b    #32,d1
  1415.     beq    .ask_for
  1416.     bra    .label2q
  1417. .label1q    cmp.b    #0,downer
  1418.     bne    .label3q
  1419. .nein    move.b    #3,endcounter
  1420. .no1    moveq.l    #0,d1
  1421.     move.b    offset,d1
  1422.     cmp.b    #4,d1
  1423.     bne    .no2
  1424.     moveq.b    #0,d1
  1425. .no_all    moveq.l    #0,d0
  1426.     move.b    byte,d0
  1427.     move.l    (a2,d1),a0
  1428.     move.b    (a0,d0),d2
  1429.     tst.b    d2
  1430.     bne    .no3
  1431.     cmp.b    #2,d5
  1432.     beq    m67
  1433.     move.b    #1,endcounter
  1434.     bra    m7
  1435. .no3    cmp.b    #2,d2
  1436.     beq    m7
  1437.     move.b    #2,endcounter
  1438.     bra    m7
  1439. .no2    cmp.b    #24,d1
  1440.     bne    m7
  1441.     move.b    #28,d1
  1442.     bra    .no_all
  1443. .label3q    addq.b    #4,d1    
  1444.     move.l    (a2,d1),a0        ;umdrehbar
  1445.     move.b    (a0,d0),d2
  1446.     cmp.b    #2,d2
  1447.     bne    .label3q
  1448. .label4q    addq.b    #4,d1        ;und danach ?
  1449.     cmp.b    #32,d1
  1450.     beq    m67        ;dann hab ich die Ecke !
  1451.     move.l    (a2,d1),a0    
  1452.     move.b    (a0,d0),d2
  1453.     tst.b    d2
  1454.     bne    .label5q
  1455.     tst.b    d5
  1456.     beq    .ask_for
  1457.     moveq.b    #2,d5
  1458.     bra    .ask_for
  1459. .label5q    cmp.b    #1,d2        ;wieder Orange ?
  1460.     beq    .nein        ;dann NEIN !
  1461.     bra    .label4q
  1462.  
  1463. .ask_for    tst.b    d5        ;d5 = 0  -  nein
  1464.     beq    .nein
  1465.     cmp.b    #4,offset
  1466.     beq    .no1
  1467.     cmp.b    #24,offset
  1468.     beq    .no1
  1469.     cmp.b    #2,d5
  1470.     beq    m67
  1471.     bra    m7
  1472.  
  1473. special_caseII        ;Ecke frei-orange-frei-orange-frei
  1474.     moveq.l    #0,d1
  1475.     moveq.l    #0,d3
  1476.     moveq.l    #0,d4
  1477.     move.b    byte,d1
  1478.     lea    tableII(pc),a2
  1479. .sc1    move.l    (a2),a0
  1480.     move.b    (a0,d1),d2        ;Ecke frei ?
  1481.     tst.b    d2
  1482.     bne    .scR
  1483.     move.l    4(a2),a0
  1484.     move.b    (a0,d1),d2
  1485.     cmp.b    #1,d2        ;Voreckfeld orange ?
  1486.     bne    .scR
  1487.     moveq.l    #4,d4
  1488. .scLoop    addq.b    #4,d4
  1489.     cmp.b    #32,d4
  1490.     beq    .scR
  1491.     move.l    (a2,d4),a0
  1492.     move.b    (a0,d1),d2
  1493.     cmp.b    #1,d2
  1494.     beq    .scLoop
  1495.     tst.b    d2        ;danach frei ?
  1496.     bne    .scR
  1497.     move.b    offset,d5
  1498.     cmp.b    d4,d5        ;is'es das Feld ?
  1499.     bne    .scR
  1500.     addq.b    #4,d4
  1501.     cmp.b    #32,d4
  1502.     beq    .scR
  1503.     move.l    (a2,d4),a0
  1504.     move.b    (a0,d1),d2
  1505.     cmp.b    #1,d2        ;danach orange ?
  1506.     bne    .scR
  1507. .scLoop2    addq.b    #4,d4
  1508.     cmp.b    #32,d4
  1509.     beq    m67        ;frei oder Ecke !
  1510.     move.l    (a2,d4),a0
  1511.     move.b    (a0,d1),d2
  1512.     tst.b    d2
  1513.     beq    m67
  1514.     cmp.b    #1,d2
  1515.     bne    .scR
  1516.     bra    .scLoop2
  1517. .scR    move.l    28(a2),a0
  1518.     move.b    (a0,d1),d2        ;Ecke frei ?
  1519.     tst.b    d2
  1520.     bne    .scNo
  1521.     move.l    24(a2),a0
  1522.     move.b    (a0,d1),d2
  1523.     cmp.b    #1,d2        ;Voreckfeld orange ?
  1524.     bne    .scNo
  1525.     moveq.l    #24,d4
  1526. .scLoop3    subq.b    #4,d4
  1527.     cmp.b    #-4,d4
  1528.     beq    .scNo
  1529.     move.l    (a2,d4),a0
  1530.     move.b    (a0,d1),d2
  1531.     cmp.b    #1,d2
  1532.     beq    .scLoop3
  1533.     tst.b    d2        ;danach frei ?
  1534.     bne    .scNo
  1535.     move.b    offset,d5
  1536.     cmp.b    d4,d5
  1537.     bne    .scNo
  1538.     subq.b    #4,d4
  1539.     cmp.b    #-4,d4
  1540.     beq    .scNo
  1541.     move.l    (a2,d4),a0
  1542.     move.b    (a0,d1),d2
  1543.     cmp.b    #1,d2        ;danach orange ?
  1544.     bne    .scNo
  1545. .scLoop4    subq.b    #4,d4
  1546.     cmp.b    #-4,d4
  1547.     beq    m67        ;frei oder Ecke !
  1548.     move.l    (a2,d4),a0
  1549.     move.b    (a0,d1),d2
  1550.     tst.b    d2
  1551.     beq    m67
  1552.     cmp.b    #1,d2
  1553.     bne    .scNo
  1554.     bra    .scLoop4
  1555. .scNo    bra    mTV2back
  1556.     
  1557.  
  1558. m67    move.b    endcounter,hicounter
  1559.     move.b    #0,endcounter
  1560.     move.b    offset,highoff
  1561.     move.b    byte,highbyte
  1562.     move.b    upper,hiupper
  1563.     move.b    drupper,hidrupper
  1564.     move.b    righter,hirighter
  1565.     move.b    drowner,hidrowner
  1566.     move.b    downer,hidowner
  1567.     move.b    dlowner,hidlowner
  1568.     move.b    lefter,hilefter
  1569.     move.b    dlupper,hidlupper
  1570.  
  1571. executeit    move.b    #0,endcounter
  1572.     move.b    hicounter,d0
  1573.     tst.b    d0
  1574.     beq    r3
  1575.     jsr    blink
  1576.     move.b    highoff,offset
  1577.     move.b    highbyte,byte
  1578.     move.b    hiupper,d0
  1579.     tst.b    d0
  1580.     beq    n1b
  1581.     CHANGE    #4,#0,#1,#2,#2
  1582. n1b    move.b    hidrupper,d0
  1583.     tst.b    d0
  1584.     beq    n2b
  1585.     CHANGE    #4,#-1,#1,#2,#2
  1586. n2b    move.b    hirighter,d0
  1587.     tst.b    d0
  1588.     beq    n3b
  1589.     CHANGE    #0,#-1,#1,#2,#2
  1590. n3b    move.b    hidrowner,d0
  1591.     tst.b    d0
  1592.     beq    n4b
  1593.     CHANGE    #-4,#-1,#1,#2,#2
  1594. n4b    move.b    hidowner,d0
  1595.     tst.b    d0
  1596.     beq    n5b
  1597.     CHANGE    #-4,#0,#1,#2,#2
  1598. n5b    move.b    hidlowner,d0
  1599.     tst.b    d0
  1600.     beq    n6b
  1601.     CHANGE    #-4,#1,#1,#2,#2
  1602. n6b    move.b    hilefter,d0
  1603.     tst.b    d0
  1604.     beq    n7b
  1605.     CHANGE    #0,#1,#1,#2,#2
  1606. n7b    move.b    hidlupper,d0
  1607.     tst.b    d0
  1608.     beq    fxsb
  1609.     CHANGE    #4,#1,#1,#2,#2
  1610. fxsb    jsr    count
  1611.     HEXER    msg2,you,#90
  1612.     HEXER    msg3,cpu,#104
  1613.     bra    r2
  1614. r3    move.b    #1,passone
  1615. r2    move.b    #2,fab1
  1616.     move.b    #1,fab2
  1617.     move.b    #0,mode
  1618.     jmp    rucksack
  1619. bts3    jsr    clear
  1620.     jsr    Lines
  1621.     move.b    #0,moves
  1622.     move.b    #0,backs
  1623.     jmp    u5
  1624. ots3    jsr    clear
  1625.     jsr    Lines
  1626.     move.b    #0,moves
  1627.     move.b    #0,backs
  1628.     jmp    rucksack
  1629.  
  1630. *  ChangeOld :
  1631. * -------------
  1632. chab    moveq.l    #7,d5
  1633. ch2    move.b    (a4)+,(a5)+
  1634.     dbra    d5,ch2
  1635.     moveq.l    #0,d5
  1636.     rts
  1637.  
  1638. *  Back :
  1639. * --------            ;wenn "Back" gedrückt wurde
  1640. backy3    cmp.b    #0,backs
  1641.     beq    rucksack
  1642.     move.b    moves,d0
  1643.     subq.b    #1,d0
  1644.     move.b    d0,moves
  1645.     move.b    backs,d0
  1646.     subq.b    #1,d0
  1647.     move.b    d0,backs
  1648.     moveq.l    #0,d0
  1649.     move.b    moves,d0
  1650.     divu    #10,d0
  1651.     swap    d0
  1652.     and.l    #$f,d0
  1653.     lsl    #2,d0
  1654.     lea    tableX(pc),a0
  1655.     move.l    (a0,d0),a0        ;von welchen move ?
  1656.     move.l    (a0)+,a5
  1657.     lea    one(pc),a4
  1658.     moveq.l    #7,d4
  1659. bac1    move.b    (a5)+,(a4)+
  1660.     dbra    d4,bac1
  1661. bac2    lea    two(pc),a4
  1662.     move.l    (a0)+,a5
  1663.     moveq.l    #7,d4
  1664. bac3    move.b    (a5)+,(a4)+
  1665.     dbra    d4,bac3
  1666. bac4    lea    three(pc),a4
  1667.     move.l    (a0)+,a5
  1668.     moveq.l    #7,d4
  1669. bac5    move.b    (a5)+,(a4)+
  1670.     dbra    d4,bac5
  1671. bac6    lea    four(pc),a4
  1672.     move.l    (a0)+,a5
  1673.     moveq.l    #7,d4
  1674. bac7    move.b    (a5)+,(a4)+
  1675.     dbra    d4,bac7
  1676. bac8    lea    five(pc),a4
  1677.     move.l    (a0)+,a5
  1678.     moveq.l    #7,d4
  1679. bac9    move.b    (a5)+,(a4)+
  1680.     dbra    d4,bac9
  1681. bac10    lea    six(pc),a4
  1682.     move.l    (a0)+,a5
  1683.     moveq.l    #7,d4
  1684. bac11    move.b    (a5)+,(a4)+
  1685.     dbra    d4,bac11
  1686. bac12    lea    seven(pc),a4
  1687.     move.l    (a0)+,a5
  1688.     moveq.l    #7,d4
  1689. bac13    move.b    (a5)+,(a4)+
  1690.     dbra    d4,bac13
  1691. bac14    lea    eight(pc),a4
  1692.     move.l    (a0),a5
  1693.     moveq.l    #7,d4
  1694. bac15    move.b    (a5)+,(a4)+
  1695.     dbra    d4,bac15
  1696.     moveq.l    #0,d4
  1697. bac16    move.l    wptr,a1
  1698.     move.l    wd_RPort(a1),a1
  1699.     moveq.l    #0,d0
  1700.     CALLGRAF    SetAPen
  1701.     move.l    wptr,a1
  1702.     move.l    wd_RPort(a1),a1
  1703.     moveq.l    #0,d5
  1704.     moveq.l    #0,d6
  1705. btouch    lea    tableII(pc),a3
  1706.     move.l    (a3,d5),a3
  1707.     moveq.l    #7,d4
  1708. bwhich    move.b    (a3)+,d6
  1709.     moveq.l    #7,d3
  1710.     sub    d4,d3
  1711.     mulu    #30,d3
  1712.     addq    #2,d3
  1713.     move.w    d3,xfill
  1714.     move.l    d5,d3
  1715.     lsr    #2,d3
  1716.     mulu    #15,d3
  1717.     add    #11,d3
  1718.     move.w    d3,yfill
  1719.     tst.b    d6
  1720.     beq    bclrnext
  1721.     cmp.b    #2,d6
  1722.     beq    bacblac
  1723.     bra    bacora
  1724. brunter    addq    #4,d5
  1725.     cmp    #32,d5
  1726.     beq    brrret
  1727.     bra    btouch
  1728. bacora    moveq.l    #3,d3
  1729. bdraw    FILL    xfill,yfill,d3
  1730.     bra    bnext
  1731. bacblac    moveq.l    #2,d3
  1732.     bra    bdraw
  1733. bclrnext    moveq.l    #0,d3
  1734.     bra    bdraw
  1735. bnext    dbra    d4,bwhich
  1736.     bra    brunter
  1737. brrret    jsr    count
  1738.     HEXER    msg2,you,#90
  1739.     HEXER    msg2,cpu,#104
  1740.     PRINT    msg9,#6,#126
  1741.     jmp    rucksack
  1742.  
  1743. *  Dots on/off :
  1744. * ---------------
  1745. dotty    cmp.b    #1,dots
  1746.     bne    dotty1
  1747.     PRINT    msg12,#75,#56
  1748.     jsr    clearDots
  1749.     move.b    #0,dots
  1750.     jmp    rucksack
  1751. dotty1    move.b    #1,dots
  1752.     PRINT    msg11,#71,#56
  1753.     move.b    #0,endcounter
  1754.     jmp    vorevent
  1755.  
  1756. *  Level-Wahl :
  1757. * --------------
  1758. level    move.b    levelbyte,d0
  1759.     addq.b    #1,d0
  1760.     cmp.b    #4,d0
  1761.     bne    l1zui
  1762.     move.b    #1,levelbyte
  1763.     PRINT    msg13,#75,#68
  1764.     jmp    rucksack
  1765. l1zui    move.b    d0,levelbyte
  1766.     cmp.b    #2,d0
  1767.     bne    l2zui
  1768.     PRINT    msg14,#75,#68
  1769.     jmp    rucksack
  1770. l2zui    PRINT    msg15,#75,#68
  1771.     jmp    rucksack
  1772.  
  1773.  
  1774. *  Blinker :
  1775. * -----------            ;blink mal kurz (s/w)
  1776. blink    moveq.l    #0,d2
  1777.     moveq.l    #0,d3
  1778.     move.b    highbyte,d2
  1779.     mulu    #30,d2
  1780.     addq    #2,d2
  1781.     move.w    d2,xfill
  1782.     moveq.l    #0,d3
  1783.     move.b    highoff,d3
  1784.     lsr    #2,d3
  1785.     mulu    #15,d3
  1786.     add    #11,d3
  1787.     move.w    d3,yfill
  1788.     moveq.l    #4,d5
  1789. b4    subq.b    #1,d5
  1790.     tst.b    d5
  1791.     beq    bret
  1792.     FILL    xfill,yfill,#1
  1793.     moveq.l    #6,d1
  1794.     CALLDOS    Delay
  1795. b2    FILL    xfill,yfill,#2
  1796.     moveq.l    #6,d1
  1797.     CALLDOS    Delay
  1798.     bra    b4
  1799. bret    rts
  1800.  
  1801. *  Possnotmac :
  1802. * --------------
  1803. poss    POSSIBLE    #4,#0,upper        ;möglich ?
  1804.     POSSIBLE    #4,#-1,drupper
  1805.     POSSIBLE    #0,#-1,righter
  1806.     POSSIBLE    #-4,#-1,drowner
  1807.     POSSIBLE    #-4,#0,downer
  1808.     POSSIBLE    #-4,#1,dlowner
  1809.     POSSIBLE    #0,#1,lefter
  1810.     POSSIBLE    #4,#1,dlupper
  1811.     rts
  1812.  
  1813. *  Counter :
  1814. * -----------            ;durchzählen
  1815. count    moveq.l    #0,d5
  1816.     moveq.l    #0,d6
  1817.     move.b    #0,you
  1818.     move.b    #0,cpu
  1819.     lea    you(pc),a5
  1820.     lea    cpu(pc),a4
  1821. touchdown    lea    tableII(pc),a3
  1822.     move.l    (a3,d5),a3
  1823.     moveq.l    #7,d2
  1824. which    move.b    (a3)+,d3
  1825.     tst.b    d3
  1826.     beq    next
  1827.     cmp.b    #2,d3
  1828.     beq.s    toblack
  1829.     cmp.b    #1,d3
  1830.     beq.s    toorange
  1831. toblack    add.b    #1,(a4)
  1832.     bra    next
  1833. toorange    add.b    #1,(a5)
  1834. next    dbra    d2,which
  1835.     moveq.l    #0,d2
  1836. runter    addq    #4,d5
  1837.     cmp.b    #32,d5
  1838.     beq.s    cret
  1839.     bra    touchdown
  1840. cret    rts
  1841.  
  1842. *  Clear :
  1843. * ---------
  1844. clear    move.l    wptr,a1
  1845.     move.l    wd_RPort(a1),a1
  1846.     moveq.l    #0,d0
  1847.     CALLGRAF    SetAPen
  1848.     move.l    wptr,a1
  1849.     move.l    wd_RPort(a1),a1
  1850.     lea    one(pc),a0
  1851.     lea    two(pc),a1
  1852.     lea    three(pc),a2
  1853.     lea    six(pc),a3
  1854.     lea    seven(pc),a4
  1855.     lea    eight(pc),a5
  1856.     moveq.l    #7,d0
  1857. cl2    move.b    #0,(a0)+
  1858.     move.b    #0,(a1)+
  1859.     move.b    #0,(a2)+    
  1860.     move.b    #0,(a3)+
  1861.     move.b    #0,(a4)+
  1862.     move.b    #0,(a5)+
  1863.     dbra    d0,cl2
  1864. cl6    lea    cop1(pc),a0
  1865.     lea    cop2(pc),a1
  1866.     lea    cop3(pc),a2
  1867.     lea    cop6(pc),a3
  1868.     lea    cop7(pc),a4
  1869.     lea    cop8(pc),a5
  1870.     moveq.l    #7,d0
  1871. cl7    move.b    #0,(a0)+
  1872.     move.b    #0,(a1)+
  1873.     move.b    #0,(a2)+    
  1874.     move.b    #0,(a3)+
  1875.     move.b    #0,(a4)+
  1876.     move.b    #0,(a5)+
  1877.     dbra    d0,cl7
  1878. cl3    lea    four(pc),a0
  1879.     lea    five(pc),a1
  1880.     lea    cop4(pc),a2
  1881.     lea    cop5(pc),a3
  1882.     move.b    #0,(a0)+
  1883.     move.b    #0,(a1)+
  1884.     move.b    #0,(a0)+
  1885.     move.b    #0,(a1)+
  1886.     move.b    #0,(a0)+
  1887.     move.b    #0,(a1)+    
  1888.     move.b    #1,(a0)+
  1889.     move.b    #2,(a1)+
  1890.     move.b    #2,(a0)+
  1891.     move.b    #1,(a1)+
  1892.     move.b    #0,(a0)+
  1893.     move.b    #0,(a1)+
  1894.     move.b    #0,(a0)+
  1895.     move.b    #0,(a1)+
  1896.     move.b    #0,(a0)+
  1897.     move.b    #0,(a1)+
  1898.     move.b    #0,(a2)+
  1899.     move.b    #0,(a3)+
  1900.     move.b    #0,(a2)+
  1901.     move.b    #0,(a3)+
  1902.     move.b    #0,(a2)+
  1903.     move.b    #0,(a3)+    
  1904.     move.b    #1,(a2)+
  1905.     move.b    #2,(a3)+
  1906.     move.b    #2,(a2)+
  1907.     move.b    #1,(a3)+
  1908.     move.b    #0,(a2)+
  1909.     move.b    #0,(a3)+
  1910.     move.b    #0,(a2)+
  1911.     move.b    #0,(a3)+
  1912.     move.b    #0,(a2)+
  1913.     move.b    #0,(a3)+
  1914.     moveq.l    #0,d5
  1915. .btouch    lea    tableII(pc),a3
  1916.     move.l    (a3,d5),a3
  1917.     moveq.l    #7,d4
  1918. .bwhich    move.b    (a3)+,d6
  1919.     moveq.l    #7,d3
  1920.     sub    d4,d3
  1921.     mulu    #30,d3
  1922.     addq    #2,d3
  1923.     move.w    d3,xfill
  1924.     move.l    d5,d3
  1925.     lsr    #2,d3
  1926.     mulu    #15,d3
  1927.     add    #11,d3
  1928.     move.w    d3,yfill
  1929.     tst.b    d6
  1930.     beq    .bclrnext
  1931.     cmp.b    #2,d6
  1932.     beq    .bacblac
  1933.     bra    .bacora
  1934. .brunter    addq    #4,d5
  1935.     cmp    #32,d5
  1936.     beq    .brrret
  1937.     bra    .btouch
  1938. .bacora    moveq.l    #3,d3
  1939. .bdraw    FILL    xfill,yfill,d3
  1940.     bra    .bnext
  1941. .bacblac    moveq.l    #2,d3
  1942.     bra    .bdraw
  1943. .bclrnext    moveq.l    #0,d3
  1944.     bra    .bdraw
  1945. .bnext    dbra    d4,.bwhich
  1946.     jmp    .brunter
  1947. .brrret    move.b    #2,you
  1948.     move.b    #2,cpu
  1949.     PRINT    msg1,#33,#90
  1950.     PRINT    msg4,#33,#104
  1951.     PRINT    msg9,#6,#126
  1952.     rts
  1953.  
  1954. *  Clear the dots :
  1955. * ------------------
  1956. clearDots    cmp.b    #0,dots
  1957.     beq    .ret
  1958.     moveq.l    #0,d5
  1959.     moveq.l    #0,d6
  1960. .btouch    lea    tableII(pc),a3
  1961.     move.l    (a3,d5),a3
  1962.     moveq.l    #7,d4
  1963. .bwhich    move.b    (a3)+,d6
  1964.     moveq.l    #7,d3
  1965.     sub    d4,d3
  1966.     mulu    #30,d3
  1967.     addq    #2,d3
  1968.     move.w    d3,xfill
  1969.     move.l    d5,d3
  1970.     lsr    #2,d3
  1971.     mulu    #15,d3
  1972.     add    #11,d3
  1973.     move.w    d3,yfill
  1974.     tst.b    d6
  1975.     bne    .next
  1976.     FILL    xfill,yfill,#0
  1977. .next    dbra    d4,.bwhich
  1978. .brunter    addq.b    #4,d5
  1979.     cmp.b    #32,d5
  1980.     bne    .btouch
  1981.     moveq.l    #0,d4
  1982. .ret    rts
  1983.  
  1984. *  finish activity :
  1985. * -------------------
  1986. closemain    move.l    wptr,a0
  1987.     CALLINT    CloseWindow
  1988. closeDOS    move.l    _DOSBase,a1
  1989.     CALLEXEC    CloseLibrary
  1990. closegraf    move.l    _GfxBase,a1
  1991.     CALLEXEC    CloseLibrary
  1992. closeint    move.l    _IntuitionBase,a1
  1993.     CALLEXEC    CloseLibrary
  1994. stop_it    rts
  1995. W_gadgets equ   WINDOWCLOSE!WINDOWDRAG!WINDOWDEPTH
  1996. W_extras  equ   SMART_REFRESH!ACTIVATE
  1997. W_Title    dc.b    "  REVCOMP V2.0   by   MARC FISCHLIN  ",0
  1998.     even                 
  1999. wdef    dc.w    130,32
  2000.     dc.w    380,136
  2001.     dc.b    2,1
  2002.     dc.l     GADGETUP!CLOSEWINDOW
  2003.     dc.l    W_gadgets!W_extras
  2004.     dc.l    gadget1
  2005.     dc.l    0
  2006.     dc.l    W_Title
  2007.     dc.l    0,0
  2008.     dc.w    50,50,400,200
  2009.     dc.w    WBENCHSCREEN
  2010. intname    INTNAME
  2011. grafname      GRAFNAME
  2012. DOSname    DOSNAME
  2013. _IntuitionBase ds.l    1
  2014. _GfxBase    ds.l    1
  2015. _DOSBase     ds.l    1
  2016. wptr    ds.l    1
  2017. counter    dc.w    0
  2018. endcounter    dc.w    0
  2019. xfill    dc.w    0
  2020. yfill    dc.w    0
  2021. ou    dc.b    0
  2022. abx    dc.b    0
  2023. TwentyEight    dc.b    0
  2024. ab1    dc.b    0
  2025. test    dc.b    0
  2026. highoff    dc.b    0
  2027. highbyte    dc.b    0
  2028. hicounter    dc.b    0
  2029. ecke    dc.b    0
  2030. hiupper    dc.b    0
  2031. hidrupper    dc.b    0
  2032. hirighter    dc.b    0
  2033. hidrowner    dc.b    0
  2034. hidowner    dc.b    0
  2035. hidlowner    dc.b    0
  2036. hilefter    dc.b    0
  2037. hidlupper    dc.b    0
  2038. passone    dc.b    0
  2039. upper    dc.b    0
  2040. drupper    dc.b    0
  2041. righter    dc.b    0
  2042. drowner    dc.b    0
  2043. downer    dc.b    0
  2044. dlowner    dc.b    0
  2045. lefter    dc.b    0
  2046. dlupper    dc.b    0
  2047. you    dc.b    0
  2048. cpu    dc.b    0
  2049. offset    dc.b    0
  2050. byte    dc.b    0
  2051. mode    dc.b    0
  2052. fab1    dc.b    2
  2053. fab2    dc.b    1
  2054.     even    
  2055. one    dc.b    0,0,0,0,0,0,0,0
  2056. two    dc.b    0,0,0,0,0,0,0,0
  2057. three    dc.b    0,0,0,0,0,0,0,0
  2058. four    dc.b    0,0,0,1,2,0,0,0
  2059. five    dc.b    0,0,0,2,1,0,0,0
  2060. six    dc.b    0,0,0,0,0,0,0,0
  2061. seven    dc.b    0,0,0,0,0,0,0,0
  2062. eight    dc.b    0,0,0,0,0,0,0,0
  2063.     even
  2064. cop1    dc.b    0,0,0,0,0,0,0,0
  2065. cop2    dc.b    0,0,0,0,0,0,0,0
  2066. cop3    dc.b    0,0,0,0,0,0,0,0
  2067. cop4    dc.b    0,0,0,1,2,0,0,0
  2068. cop5    dc.b    0,0,0,2,1,0,0,0
  2069. cop6    dc.b    0,0,0,0,0,0,0,0
  2070. cop7    dc.b    0,0,0,0,0,0,0,0
  2071. cop8    dc.b    0,0,0,0,0,0,0,0
  2072.     even
  2073. tableIV    dc.l    0
  2074.     dc.l    pe1
  2075.     dc.l    pe2
  2076.     dc.l    pe3
  2077.     dc.l    pe4
  2078.     dc.l    pl1
  2079.     dc.l    pl2
  2080.     dc.l    pl3
  2081.     dc.l    pl4
  2082.     dc.l    pl5
  2083.     dc.l    pl6
  2084.     dc.l    pl7
  2085.     dc.l    pl8
  2086.     dc.l    pl9
  2087.     dc.l    pl10
  2088.     dc.l    pl11
  2089.     dc.l    pl12
  2090.     dc.l    pl13
  2091.     dc.l    pl14
  2092.     dc.l    pl15
  2093.     dc.l    pl16
  2094.     dc.l    pl17
  2095.     dc.l    pl18
  2096.     dc.l    pl19
  2097.     dc.l    pl20
  2098.     dc.l    pl21
  2099.     dc.l    pl22
  2100.     dc.l    pl23
  2101.     dc.l    pl24
  2102.     dc.l    pl25
  2103.     dc.l    pl26
  2104.     dc.l    pl27
  2105.     dc.l    pl28
  2106.     dc.l    pl29
  2107.     dc.l    pl30
  2108.     dc.l    pl31
  2109.     dc.l    pl32
  2110.     dc.l    pl33
  2111.     dc.l    pl34
  2112.     dc.l    pl35
  2113.     dc.l    pl36
  2114.     dc.l    pl37
  2115.     dc.l    pl38
  2116.     dc.l    pl39
  2117.     dc.l    pl40
  2118.     dc.l    pl41
  2119.     dc.l    pl42
  2120.     dc.l    pl43
  2121.     dc.l    pl44
  2122.     dc.l    pl45
  2123.     dc.l    pl46
  2124.     dc.l    pl47
  2125.     dc.l    pl48
  2126.     dc.l    pl49
  2127.     dc.l    pl50
  2128.     dc.l    pl51
  2129.     dc.l    pl52
  2130.     dc.l    pl53
  2131.     dc.l    pl54
  2132.     dc.l    pl55
  2133.     dc.l    pl56
  2134. tableIII    dc.l    0
  2135.     dc.l    e1
  2136.     dc.l    e2
  2137.     dc.l    e3
  2138.     dc.l    e4
  2139.     dc.l    l1
  2140.     dc.l    l2
  2141.     dc.l    l3
  2142.     dc.l    l4
  2143.     dc.l    l5
  2144.     dc.l    l6
  2145.     dc.l    l7
  2146.     dc.l    l8
  2147.     dc.l    l9
  2148.     dc.l    l10
  2149.     dc.l    l11
  2150.     dc.l    l12
  2151.     dc.l    l13
  2152.     dc.l    l14
  2153.     dc.l    l15
  2154.     dc.l    l16
  2155.     dc.l    l17
  2156.     dc.l    l18
  2157.     dc.l    l19
  2158.     dc.l    l20
  2159.     dc.l    l21
  2160.     dc.l    l22
  2161.     dc.l    l23
  2162.     dc.l    l24
  2163.     dc.l    l25
  2164.     dc.l    l26
  2165.     dc.l    l27
  2166.     dc.l    l28
  2167.     dc.l    l29
  2168.     dc.l    l30
  2169.     dc.l    l31
  2170.     dc.l    l32
  2171.     dc.l    l33
  2172.     dc.l    l34
  2173.     dc.l    l35
  2174.     dc.l    l36
  2175.     dc.l    l37
  2176.     dc.l    l38
  2177.     dc.l    l39
  2178.     dc.l    l40
  2179.     dc.l    l41
  2180.     dc.l    l42
  2181.     dc.l    l43
  2182.     dc.l    l44
  2183.     dc.l    l45
  2184.     dc.l    l46
  2185.     dc.l    l47
  2186.     dc.l    l48
  2187.     dc.l    l49
  2188.     dc.l    l50
  2189.     dc.l    l51
  2190.     dc.l    l52
  2191.     dc.l    l53
  2192.     dc.l    l54
  2193.     dc.l    l55
  2194.     dc.l    l56
  2195. tableII    dc.l    one
  2196.     dc.l    two
  2197.     dc.l    three
  2198.     dc.l    four
  2199.     dc.l    five
  2200.     dc.l    six
  2201.     dc.l    seven
  2202.     dc.l    eight
  2203. table    dc.l    iw1
  2204.     dc.l    iw2
  2205.     dc.l    iw3
  2206.     dc.l    iw4
  2207.     dc.l    iw5
  2208.     dc.l    iw6
  2209.     dc.l    iw7
  2210.     dc.l    iw8
  2211.     dc.l    iw9
  2212.     dc.l    iw10
  2213.     dc.l    iw11
  2214.     dc.l    iw12
  2215.     dc.l    iw13
  2216.     dc.l    iw14
  2217.     dc.l    iw15
  2218.     dc.l    iw16
  2219.     dc.l    iw17
  2220.     dc.l    iw18
  2221.     dc.l    iw19
  2222.     dc.l    iw20
  2223.     dc.l    iw21
  2224.     dc.l    iw22
  2225.     dc.l    iw23
  2226.     dc.l    iw24
  2227.     dc.l    iw25
  2228.     dc.l    iw26
  2229.     dc.l    iw27
  2230.     dc.l    iw28
  2231.     dc.l    iw29
  2232.     dc.l    iw30
  2233.     dc.l    iw31
  2234.     dc.l    iw32
  2235.     dc.l    iw33
  2236.     dc.l    iw34
  2237.     dc.l    iw35
  2238.     dc.l    iw36
  2239.     dc.l    iw37
  2240.     dc.l    iw38
  2241.     dc.l    iw39
  2242.     dc.l    iw40
  2243.     dc.l    iw41
  2244.     dc.l    iw42
  2245.     dc.l    iw43
  2246.     dc.l    iw44
  2247.     dc.l    iw45
  2248.     dc.l    iw46
  2249.     dc.l    iw47
  2250.     dc.l    iw48
  2251.     dc.l    iw49
  2252.     dc.l    iw50
  2253.     dc.l    iw51
  2254.     dc.l    iw52
  2255.     dc.l    iw53
  2256.     dc.l    iw54
  2257.     dc.l    iw55
  2258.     dc.l    iw56
  2259.     dc.l    iw57
  2260.     dc.l    iw58
  2261.     dc.l    iw59
  2262.     dc.l    iw60
  2263.     dc.l    iw61
  2264.     dc.l    iw62
  2265.     dc.l    iw63
  2266.     dc.l    iw64
  2267.     dc.l    bts1
  2268.     dc.l    ots1
  2269.     dc.l    backy1
  2270.     dc.l    dotty
  2271.     dc.l    level
  2272.  
  2273. *  Messages :
  2274. * ------------
  2275. msg1    dc.b    "YOU : 02",0
  2276. msg4    dc.b    "CPU : 02",0
  2277. msg2    dc.b    "  ",0
  2278. msg3    dc.b    "  ",0
  2279. msg5    dc.b    "- You win -",0
  2280. msg6    dc.b    "- Game's tied -",0
  2281. msg7    dc.b    "- You lose -",0
  2282. msg9    dc.b    "               ",0
  2283. msg10    dc.b    ".",0
  2284. msg11    dc.b    " on ",0
  2285. msg12    dc.b    "off",0
  2286. msg13    dc.b    " 1 ",0
  2287. msg14    dc.b    " 2 ",0
  2288. msg15    dc.b    " 3 ",0
  2289.     even
  2290. *  Gadgets :
  2291. * -----------
  2292. border    dc.w    0,0
  2293.     dc.b    1,0,0,5
  2294.     dc.l    koord
  2295.     dc.l     0
  2296. koord    dc.w    -1,-1
  2297.     dc.w    29,-1
  2298.     dc.w    29,14
  2299.     dc.w    -1,14
  2300.     dc.w    -1,-1
  2301.  
  2302. gadget1    dc.l    bts
  2303.     dc.w    133,13,240,120,GADGHNONE,RELVERIFY,1
  2304.     dc.l    0,0,0,0,0
  2305.     dc.w    1
  2306.     dc.l    0
  2307.  
  2308. bts    dc.l    ots
  2309.     dc.w    5,13,123,9
  2310.     dc.w    GADGHCOMP
  2311.     dc.w    RELVERIFY
  2312.     dc.w    1
  2313.     dc.l    border2
  2314.     dc.l    0
  2315.     dc.l    bts_text
  2316.     dc.l    0,0
  2317.     dc.w    65
  2318.     dc.l    0
  2319. bts_text    dc.b    1,0,0,0
  2320.     dc.w    2,1
  2321.     dc.l    0
  2322.     dc.l    bts_real
  2323.     dc.l    0
  2324. bts_real    dc.b    " Black  starts",0
  2325.     even
  2326. border2    dc.w    0,0
  2327.     dc.b    1,0,0,5
  2328.     dc.l    koords2
  2329.     dc.l    0
  2330. koords2    dc.w    -1,-1,123,-1,123,9,-1,9,-1,-1
  2331. ots    dc.l    backy
  2332.     dc.w    5,25,123,9
  2333.     dc.w    GADGHCOMP
  2334.     dc.w    RELVERIFY
  2335.     dc.w    1
  2336.     dc.l    border2
  2337.     dc.l    0
  2338.     dc.l    ots_text
  2339.     dc.l    0,0
  2340.     dc.w    66
  2341.     dc.l    0
  2342. ots_text    dc.b    1,0,0,0
  2343.     dc.w    2,1
  2344.     dc.l    0
  2345.     dc.l    ots_real
  2346.     dc.l    0
  2347. ots_real    dc.b    " Orange starts",0
  2348. backy    dc.l    doo
  2349.     dc.w    5,37,123,9
  2350.     dc.w    GADGHCOMP
  2351.     dc.w    RELVERIFY
  2352.     dc.w    1
  2353.     dc.l    border2
  2354.     dc.l    0
  2355.     dc.l    backy_text
  2356.     dc.l    0,0
  2357.     dc.w    67
  2358.     dc.l    0
  2359. backy_text    dc.b    1,0,0,0
  2360.     dc.w    6,1
  2361.     dc.l    0
  2362.     dc.l    backy_real
  2363.     dc.l    0    
  2364. backy_real    dc.b    "     Back     ",0
  2365.     even
  2366. doo    dc.l    lev
  2367.     dc.w    5,49,123,9
  2368.     dc.w    GADGHCOMP
  2369.     dc.w    RELVERIFY
  2370.     dc.w    1
  2371.     dc.l    border2
  2372.     dc.l    0
  2373.     dc.l    doo_text
  2374.     dc.l    0,0
  2375.     dc.w    68
  2376.     dc.l    0
  2377. doo_text    dc.b    1,0,0,0
  2378.     dc.w    4,1
  2379.     dc.l    0
  2380.     dc.l    doo_real
  2381.     dc.l    0
  2382. doo_real    dc.b    "   Dots      ",0
  2383.     even
  2384. lev    dc.l    0
  2385.     dc.w    5,61,123,9
  2386.     dc.w    GADGHCOMP
  2387.     dc.w    RELVERIFY
  2388.     dc.w    1
  2389.     dc.l    border2
  2390.     dc.l    0
  2391.     dc.l    lev_text
  2392.     dc.l    0,0
  2393.     dc.w    69
  2394.     dc.l    0
  2395. lev_text    dc.b    1,0,0,0
  2396.     dc.w    8,1
  2397.     dc.l    0
  2398.     dc.l    lev_real
  2399.     dc.l    0
  2400. lev_real    dc.b    "  Level      ",0
  2401.     even
  2402.  
  2403. moves    dc.b    0
  2404. backs    dc.b    0
  2405. now    dc.b    0
  2406. dots    dc.b    1
  2407. levelbyte    dc.b    3
  2408.     even
  2409.  
  2410.  
  2411. lAa    dc.b    0,0,0,0,0,0,0,0
  2412. lAb    dc.b    0,0,0,0,0,0,0,0
  2413. lAc    dc.b    0,0,0,0,0,0,0,0
  2414. lAd    dc.b    0,0,0,0,0,0,0,0
  2415. lAe    dc.b    0,0,0,0,0,0,0,0
  2416. lAf    dc.b    0,0,0,0,0,0,0,0
  2417. lAg    dc.b    0,0,0,0,0,0,0,0
  2418. lAh    dc.b    0,0,0,0,0,0,0,0
  2419.  
  2420. lBa    dc.b    0,0,0,0,0,0,0,0
  2421. lBb    dc.b    0,0,0,0,0,0,0,0
  2422. lBc    dc.b    0,0,0,0,0,0,0,0
  2423. lBd    dc.b    0,0,0,0,0,0,0,0
  2424. lBe    dc.b    0,0,0,0,0,0,0,0
  2425. lBf    dc.b    0,0,0,0,0,0,0,0
  2426. lBg    dc.b    0,0,0,0,0,0,0,0
  2427. lBh    dc.b    0,0,0,0,0,0,0,0
  2428.  
  2429. lCa    dc.b    0,0,0,0,0,0,0,0
  2430. lCb    dc.b    0,0,0,0,0,0,0,0
  2431. lCc    dc.b    0,0,0,0,0,0,0,0
  2432. lCd    dc.b    0,0,0,0,0,0,0,0
  2433. lCe    dc.b    0,0,0,0,0,0,0,0
  2434. lCf    dc.b    0,0,0,0,0,0,0,0
  2435. lCg    dc.b    0,0,0,0,0,0,0,0
  2436. lCh    dc.b    0,0,0,0,0,0,0,0
  2437.  
  2438. lDa    dc.b    0,0,0,0,0,0,0,0
  2439. lDb    dc.b    0,0,0,0,0,0,0,0
  2440. lDc    dc.b    0,0,0,0,0,0,0,0
  2441. lDd    dc.b    0,0,0,0,0,0,0,0
  2442. lDe    dc.b    0,0,0,0,0,0,0,0
  2443. lDf    dc.b    0,0,0,0,0,0,0,0
  2444. lDg    dc.b    0,0,0,0,0,0,0,0
  2445. lDh    dc.b    0,0,0,0,0,0,0,0
  2446.  
  2447. lEa    dc.b    0,0,0,0,0,0,0,0
  2448. lEb    dc.b    0,0,0,0,0,0,0,0
  2449. lEc    dc.b    0,0,0,0,0,0,0,0
  2450. lEd    dc.b    0,0,0,0,0,0,0,0
  2451. lEe    dc.b    0,0,0,0,0,0,0,0
  2452. lEf    dc.b    0,0,0,0,0,0,0,0
  2453. lEg    dc.b    0,0,0,0,0,0,0,0
  2454. lEh    dc.b    0,0,0,0,0,0,0,0
  2455.  
  2456. lFa    dc.b    0,0,0,0,0,0,0,0
  2457. lFb    dc.b    0,0,0,0,0,0,0,0
  2458. lFc    dc.b    0,0,0,0,0,0,0,0
  2459. lFd    dc.b    0,0,0,0,0,0,0,0
  2460. lFe    dc.b    0,0,0,0,0,0,0,0
  2461. lFf    dc.b    0,0,0,0,0,0,0,0
  2462. lFg    dc.b    0,0,0,0,0,0,0,0
  2463. lFh    dc.b    0,0,0,0,0,0,0,0
  2464.  
  2465. lGa    dc.b    0,0,0,0,0,0,0,0
  2466. lGb    dc.b    0,0,0,0,0,0,0,0
  2467. lGc    dc.b    0,0,0,0,0,0,0,0
  2468. lGd    dc.b    0,0,0,0,0,0,0,0
  2469. lGe    dc.b    0,0,0,0,0,0,0,0
  2470. lGf    dc.b    0,0,0,0,0,0,0,0
  2471. lGg    dc.b    0,0,0,0,0,0,0,0
  2472. lGh    dc.b    0,0,0,0,0,0,0,0
  2473.  
  2474. lHa    dc.b    0,0,0,0,0,0,0,0
  2475. lHb    dc.b    0,0,0,0,0,0,0,0
  2476. lHc    dc.b    0,0,0,0,0,0,0,0
  2477. lHd    dc.b    0,0,0,0,0,0,0,0
  2478. lHe    dc.b    0,0,0,0,0,0,0,0
  2479. lHf    dc.b    0,0,0,0,0,0,0,0
  2480. lHg    dc.b    0,0,0,0,0,0,0,0
  2481. lHh    dc.b    0,0,0,0,0,0,0,0
  2482.  
  2483. lIa    dc.b    0,0,0,0,0,0,0,0
  2484. lIb    dc.b    0,0,0,0,0,0,0,0
  2485. lIc    dc.b    0,0,0,0,0,0,0,0
  2486. lId    dc.b    0,0,0,0,0,0,0,0
  2487. lIe    dc.b    0,0,0,0,0,0,0,0
  2488. lIf    dc.b    0,0,0,0,0,0,0,0
  2489. lIg    dc.b    0,0,0,0,0,0,0,0
  2490. lIh    dc.b    0,0,0,0,0,0,0,0
  2491.  
  2492. lJa    dc.b    0,0,0,0,0,0,0,0
  2493. lJb    dc.b    0,0,0,0,0,0,0,0
  2494. lJc    dc.b    0,0,0,0,0,0,0,0
  2495. lJd    dc.b    0,0,0,0,0,0,0,0
  2496. lJe    dc.b    0,0,0,0,0,0,0,0
  2497. lJf    dc.b    0,0,0,0,0,0,0,0
  2498. lJg    dc.b    0,0,0,0,0,0,0,0
  2499. lJh    dc.b    0,0,0,0,0,0,0,0
  2500.     even
  2501.  
  2502. tableX    dc.l    tableXI,tableXII,tableXIII,tableXIV,tableXV,tableXVI,tableXVII,tableXVIII,tableXIX,tableXX
  2503. tableXI    dc.l    lAa,lAb,lAc,lAd,lAe,lAf,lAg,lAh
  2504. tableXII    dc.l    lBa,lBb,lBc,lBd,lBe,lBf,lBg,lBh
  2505. tableXIII    dc.l    lCa,lCb,lCc,lCd,lCe,lCf,lCg,lCh
  2506. tableXIV    dc.l    lDa,lDb,lDc,lDd,lDe,lDf,lDg,lDh
  2507. tableXV    dc.l    lEa,lEb,lEc,lEd,lEe,lEf,lEg,lEh
  2508. tableXVI    dc.l    lFa,lFb,lFc,lFd,lFe,lFf,lFg,lFh
  2509. tableXVII    dc.l    lGa,lGb,lGc,lGd,lGe,lGf,lGg,lGh
  2510. tableXVIII    dc.l    lHa,lHb,lHc,lHd,lHe,lHf,lHg,lHh
  2511. tableXIX    dc.l    lIa,lIb,lIc,lId,lIe,lIf,lIg,lIh
  2512. tableXX    dc.l    lJa,lJb,lJc,lJd,lJe,lJf,lJg,lJh
  2513.  
  2514.  
  2515. *  Dot malen :
  2516. * -------------
  2517.  
  2518. drawDot    move.l    wptr,a1
  2519.     move.l    wd_RPort(a1),a1
  2520.     move.l    a1,a4
  2521.     moveq    #1,d0
  2522.     CALLGRAF    SetAPen
  2523.     move.l    a4,a1
  2524.     moveq.l    #0,d5
  2525.     moveq.l    #0,d4
  2526.     move.b    offset,d5
  2527.     lsr    #2,d5
  2528.     move.b    byte,d4
  2529.     mulu    #15,d5
  2530.     mulu    #30,d4
  2531.     add    #19,d5
  2532.     add    #146,d4
  2533.     move.l    d4,d0
  2534.     move.l    d5,d1
  2535.     CALLGRAF    WritePixel
  2536.     move.l    d4,d0
  2537.     move.l    d5,d1
  2538.     addq.b    #1,d0
  2539.     move.l    a4,a1
  2540.     CALLGRAF    WritePixel
  2541.     move.l    d4,d0
  2542.     addq.b    #1,d5
  2543.     move.l    d5,d1
  2544.     move.l    a4,a1
  2545.     CALLGRAF    WritePixel
  2546.     move.l    d4,d0
  2547.     addq.b    #1,d0
  2548.     move.l    d5,d1
  2549.     move.l    a4,a1
  2550.     CALLGRAF    WritePixel
  2551.     move.b    #0,endcounter
  2552.     rts
  2553.  
  2554.  
  2555.